Subject: [PATCH] Built motion from commit 4143fce.|0.0.15

From: Motion Team <[email-masked]>
Date: Mon, 11 Jan 2016 12:52:57 +0100

---
 package.json                                       |    6 +-
 public/app/30a38ffd.app.js                         |   55 +
 public/app/6e9756ac.vendor.css                     |   30 +
 public/app/8f45a8c3.vendor.js                      |   93 -
 public/app/9073265e.app.css                        |    1 -
 public/app/a64e9fe8.app.js                         |   51 -
 public/app/dc39fef2.app.css                        |    1 +
 public/app/fa0dad2a.vendor.js                      |   97 +
 public/app/ff092e3b.vendor.css                     |   30 -
 public/assets/css/global/components.css            |   24 +-
 public/assets/css/global/custom.css                |   27 +-
 public/assets/images/media/customfield.png         |  Bin 0 -> 15817 bytes
 public/assets/images/media/desk2.png               |  Bin 0 -> 56060 bytes
 public/assets/images/media/freshdesk.png           |  Bin 0 -> 88477 bytes
 public/assets/images/media/metric.png              |  Bin 0 -> 16026 bytes
 public/assets/images/media/salesforce2.png         |  Bin 0 -> 106631 bytes
 public/assets/images/media/sugarcrm.png            |  Bin 0 -> 6814 bytes
 public/assets/images/media/sugarcrm2.png           |  Bin 0 -> 104374 bytes
 public/assets/images/media/zendesk2.png            |  Bin 0 -> 64351 bytes
 public/assets/languages/locale-en_EN.json          |   37 +-
 public/assets/languages/locale-it.json             |   37 +-
 public/assets/scripts/global/layout.js             |  138 +-
 .../angular-papaparse/angular-PapaParse.js         |   30 +
 public/bower_components/jstree/jstree.js           | 7781 ++++++++++++++++++++
 public/bower_components/jstree/style.css           | 1061 +++
 public/bower_components/ng-js-tree/ngJsTree.js     |  200 +
 public/bower_components/papaparse/papaparse.js     | 1403 ++++
 public/index.html                                  |    8 +-
 release-notes/changelog_0.0.14.txt                 |   52 -
 release-notes/changelog_0.0.15.txt                 |   25 +
 server/api/chat_enquiry/enquiry.spec.js            |   20 -
 server/api/chat_message/chat_message.controller.js |   72 +-
 server/api/chat_queue/chat_queue.controller.js     |  160 +-
 server/api/chat_queue/chat_queue.socket.js         |    8 +-
 server/api/chat_room/chat_room.controller.js       |  131 +-
 server/api/chat_room/chat_room.controller.js.back  |  286 -
 server/api/chat_room/chat_room.socket.js           |    8 +-
 server/api/chat_website/chat_website.controller.js |  146 +-
 server/api/company/company.spec.js                 |    4 +-
 .../contact_manager/contact_manager.controller.js  |  410 +-
 server/api/contact_manager/index.js                |    2 +-
 server/api/custom_field/custom_field.controller.js |  223 +
 server/api/custom_field/custom_field.socket.js     |   29 +
 server/api/custom_field/custom_field.spec.js       |   20 +
 server/api/custom_field/index.js                   |   19 +
 .../api/custom_report/custom_report.controller.js  |  160 +
 server/api/custom_report/custom_report.socket.js   |   24 +
 server/api/custom_report/custom_report.spec.js     |   20 +
 server/api/custom_report/index.js                  |   15 +
 .../default_report/default_report.controller.js    |  159 +
 server/api/default_report/default_report.socket.js |   24 +
 server/api/default_report/default_report.spec.js   |   20 +
 server/api/default_report/index.js                 |   15 +
 server/api/desk_account/desk_account.controller.js |   16 +
 server/api/desk_account/index.js                   |    1 +
 .../freshdesk_account.controller.js                |  239 +
 .../freshdesk_account/freshdesk_account.socket.js  |   24 +
 server/api/freshdesk_account/index.js              |   21 +
 server/api/freshdesk_account/index.spec.js         |   97 +
 .../freshdesk_configuration.controller.js          |  146 +
 .../freshdesk_configuration.socket.js              |   24 +
 server/api/freshdesk_configuration/index.js        |   19 +
 server/api/freshdesk_configuration/index.spec.js   |   97 +
 .../freshdesk_field/freshdesk_field.controller.js  |  104 +
 .../api/freshdesk_field/freshdesk_field.socket.js  |   24 +
 server/api/freshdesk_field/index.js                |   18 +
 server/api/freshdesk_field/index.spec.js           |   97 +
 server/api/integration/integration.controller.js   |    4 +-
 server/api/integration/integration.socket.js       |    3 +
 .../mail_attachment/mail_attachment.controller.js  |   40 +-
 .../mail_business_automation.socket.js             |    9 +-
 server/api/mail_message/mail_message.controller.js |  107 +-
 server/api/mail_room/mail_room.controller.js       |  142 +-
 server/api/mail_room/mail_room.kue.js              |   66 -
 server/api/mail_room/mail_room.spec.js             |   20 -
 server/api/mail_server_in/index.js                 |    2 +-
 .../mail_server_in/mail_server_in.controller.js    |   43 +-
 server/api/mail_server_in/mail_server_in.spec.js   |   20 -
 server/api/mail_server_out/index.js                |    5 +-
 .../mail_server_out/mail_server_out.controller.js  |  107 +-
 server/api/mail_server_out/mail_server_out.spec.js |   20 -
 .../api/mail_template/mail_template.controller.js  |   98 +-
 server/api/mail_template/mail_template.spec.js     |   20 -
 server/api/metric/index.js                         |   18 +
 server/api/metric/metric.controller.js             |  220 +
 server/api/metric/metric.socket.js                 |   24 +
 server/api/metric/metric.spec.js                   |   20 +
 server/api/report/index.js                         |   15 -
 server/api/report/report.controller.js             |  121 -
 server/api/report/report.socket.js                 |   24 -
 server/api/report/report.spec.js                   |   20 -
 server/api/report_chat/report_chat.controller.js   |   12 +-
 server/api/report_chat/report_chat.socket.js       |   14 +-
 server/api/report_tree/index.js                    |   12 +
 server/api/report_tree/report_tree.controller.js   |   46 +
 server/api/report_tree/report_tree.socket.js       |   27 +
 server/api/report_tree/report_tree.spec.js         |   20 +
 server/api/salesforce_account/index.js             |    1 +
 .../salesforce_account.controller.js               |   16 +
 .../salesforce_configuration.controller.js         |    4 +-
 server/api/sugarcrm_account/index.js               |   21 +
 server/api/sugarcrm_account/index.spec.js          |   97 +
 .../sugarcrm_account.controller.js                 |  259 +
 .../sugarcrm_account/sugarcrm_account.socket.js    |   24 +
 server/api/sugarcrm_configuration/index.js         |   18 +
 server/api/sugarcrm_configuration/index.spec.js    |   97 +
 .../sugarcrm_configuration.controller.js           |  145 +
 .../sugarcrm_configuration.socket.js               |   24 +
 server/api/sugarcrm_field/index.js                 |   18 +
 server/api/sugarcrm_field/index.spec.js            |   97 +
 .../sugarcrm_field/sugarcrm_field.controller.js    |  104 +
 server/api/sugarcrm_field/sugarcrm_field.socket.js |   24 +
 server/api/tag/tag.controller.js                   |    3 +-
 server/api/user/user.ami.js                        |   24 +-
 .../user_has_chat_room.socket.js                   |   64 +-
 .../voice_extension/voice_extension.controller.js  |  842 +--
 server/api/xchatty/xchatty.controller.js           |  232 +-
 server/api/xchatty/xchatty.spec.js                 |   20 -
 server/app.js                                      |    4 +-
 server/components/xchatty/xchatty.js               |    7 +-
 server/config/automations/mail.js                  |  120 +-
 server/config/environment/config.json              |    2 +-
 server/config/environment/config_history.json      |    2 +-
 server/config/imap/imap.js                         |  774 ++-
 server/config/imap/index.js                        |  105 +-
 server/config/kue.chat.js                          |  281 +-
 server/config/smtp/index.js                        |   92 +-
 server/config/smtp/smtp.js                         |  763 +-
 server/config/socketio.js                          |  220 +-
 server/config/triggers/chat.js                     |   71 +
 server/config/triggers/index.js                    |   36 +-
 server/models/chat_enquiry.js                      |    5 +-
 server/models/chat_website.js                      |   14 +-
 server/models/contact.js                           |    4 +
 server/models/contact_email.js                     |    5 +-
 server/models/contact_has_custom_field.js          |   16 +
 server/models/contact_phone.js                     |    5 +-
 server/models/custom_field.js                      |   28 +
 server/models/custom_report.js                     |   14 +
 server/models/default_report.js                    |   14 +
 server/models/desk_account.js                      |    4 +-
 server/models/desk_configuration.js                |    4 +-
 server/models/freshdesk_account.js                 |   24 +
 server/models/freshdesk_configuration.js           |   27 +
 server/models/freshdesk_field.js                   |   26 +
 server/models/index.js                             |   20 +-
 server/models/integration.js                       |   27 +-
 server/models/mail_message.js                      |   15 +-
 server/models/mail_server_in.js                    |    8 +-
 server/models/mail_server_out.js                   |   12 +-
 server/models/metric.js                            |   21 +
 server/models/report.js                            |   13 -
 server/models/report_tree.js                       |   12 +
 server/models/salesforce_account.js                |    4 +-
 server/models/salesforce_configuration.js          |    4 +-
 server/models/sugarcrm_account.js                  |   20 +
 server/models/sugarcrm_configuration.js            |   27 +
 server/models/sugarcrm_field.js                    |   22 +
 server/models/variable.js                          |    2 +
 server/models/zendesk_account.js                   |    4 +-
 server/models/zendesk_configuration.js             |    4 +-
 server/routes.js                                   |   14 +-
 162 files changed, 16949 insertions(+), 3469 deletions(-)
 create mode 100644 public/app/30a38ffd.app.js
 create mode 100644 public/app/6e9756ac.vendor.css
 delete mode 100644 public/app/8f45a8c3.vendor.js
 delete mode 100644 public/app/9073265e.app.css
 delete mode 100644 public/app/a64e9fe8.app.js
 create mode 100644 public/app/dc39fef2.app.css
 create mode 100644 public/app/fa0dad2a.vendor.js
 delete mode 100644 public/app/ff092e3b.vendor.css
 create mode 100644 public/assets/images/media/customfield.png
 create mode 100644 public/assets/images/media/desk2.png
 create mode 100644 public/assets/images/media/freshdesk.png
 create mode 100644 public/assets/images/media/metric.png
 create mode 100644 public/assets/images/media/salesforce2.png
 create mode 100644 public/assets/images/media/sugarcrm.png
 create mode 100644 public/assets/images/media/sugarcrm2.png
 create mode 100644 public/assets/images/media/zendesk2.png
 create mode 100644 public/bower_components/angular-papaparse/angular-PapaParse.js
 create mode 100644 public/bower_components/jstree/jstree.js
 create mode 100644 public/bower_components/jstree/style.css
 create mode 100644 public/bower_components/ng-js-tree/ngJsTree.js
 create mode 100644 public/bower_components/papaparse/papaparse.js
 delete mode 100644 release-notes/changelog_0.0.14.txt
 create mode 100644 release-notes/changelog_0.0.15.txt
 delete mode 100644 server/api/chat_enquiry/enquiry.spec.js
 delete mode 100644 server/api/chat_room/chat_room.controller.js.back
 create mode 100644 server/api/custom_field/custom_field.controller.js
 create mode 100644 server/api/custom_field/custom_field.socket.js
 create mode 100644 server/api/custom_field/custom_field.spec.js
 create mode 100644 server/api/custom_field/index.js
 create mode 100644 server/api/custom_report/custom_report.controller.js
 create mode 100644 server/api/custom_report/custom_report.socket.js
 create mode 100644 server/api/custom_report/custom_report.spec.js
 create mode 100644 server/api/custom_report/index.js
 create mode 100644 server/api/default_report/default_report.controller.js
 create mode 100644 server/api/default_report/default_report.socket.js
 create mode 100644 server/api/default_report/default_report.spec.js
 create mode 100644 server/api/default_report/index.js
 create mode 100644 server/api/freshdesk_account/freshdesk_account.controller.js
 create mode 100644 server/api/freshdesk_account/freshdesk_account.socket.js
 create mode 100644 server/api/freshdesk_account/index.js
 create mode 100644 server/api/freshdesk_account/index.spec.js
 create mode 100644 server/api/freshdesk_configuration/freshdesk_configuration.controller.js
 create mode 100644 server/api/freshdesk_configuration/freshdesk_configuration.socket.js
 create mode 100644 server/api/freshdesk_configuration/index.js
 create mode 100644 server/api/freshdesk_configuration/index.spec.js
 create mode 100644 server/api/freshdesk_field/freshdesk_field.controller.js
 create mode 100644 server/api/freshdesk_field/freshdesk_field.socket.js
 create mode 100644 server/api/freshdesk_field/index.js
 create mode 100644 server/api/freshdesk_field/index.spec.js
 delete mode 100644 server/api/mail_room/mail_room.kue.js
 delete mode 100644 server/api/mail_room/mail_room.spec.js
 delete mode 100644 server/api/mail_server_in/mail_server_in.spec.js
 delete mode 100644 server/api/mail_server_out/mail_server_out.spec.js
 delete mode 100644 server/api/mail_template/mail_template.spec.js
 create mode 100644 server/api/metric/index.js
 create mode 100644 server/api/metric/metric.controller.js
 create mode 100644 server/api/metric/metric.socket.js
 create mode 100644 server/api/metric/metric.spec.js
 delete mode 100644 server/api/report/index.js
 delete mode 100644 server/api/report/report.controller.js
 delete mode 100644 server/api/report/report.socket.js
 delete mode 100644 server/api/report/report.spec.js
 create mode 100644 server/api/report_tree/index.js
 create mode 100644 server/api/report_tree/report_tree.controller.js
 create mode 100644 server/api/report_tree/report_tree.socket.js
 create mode 100644 server/api/report_tree/report_tree.spec.js
 create mode 100644 server/api/sugarcrm_account/index.js
 create mode 100644 server/api/sugarcrm_account/index.spec.js
 create mode 100644 server/api/sugarcrm_account/sugarcrm_account.controller.js
 create mode 100644 server/api/sugarcrm_account/sugarcrm_account.socket.js
 create mode 100644 server/api/sugarcrm_configuration/index.js
 create mode 100644 server/api/sugarcrm_configuration/index.spec.js
 create mode 100644 server/api/sugarcrm_configuration/sugarcrm_configuration.controller.js
 create mode 100644 server/api/sugarcrm_configuration/sugarcrm_configuration.socket.js
 create mode 100644 server/api/sugarcrm_field/index.js
 create mode 100644 server/api/sugarcrm_field/index.spec.js
 create mode 100644 server/api/sugarcrm_field/sugarcrm_field.controller.js
 create mode 100644 server/api/sugarcrm_field/sugarcrm_field.socket.js
 delete mode 100644 server/api/xchatty/xchatty.spec.js
 create mode 100644 server/config/triggers/chat.js
 create mode 100644 server/models/contact_has_custom_field.js
 create mode 100644 server/models/custom_field.js
 create mode 100644 server/models/custom_report.js
 create mode 100644 server/models/default_report.js
 create mode 100644 server/models/freshdesk_account.js
 create mode 100644 server/models/freshdesk_configuration.js
 create mode 100644 server/models/freshdesk_field.js
 create mode 100644 server/models/metric.js
 delete mode 100644 server/models/report.js
 create mode 100644 server/models/report_tree.js
 create mode 100644 server/models/sugarcrm_account.js
 create mode 100644 server/models/sugarcrm_configuration.js
 create mode 100644 server/models/sugarcrm_field.js

diff --git a/package.json b/package.json
index 70b2154..956cdf1 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "motion",
-  "version": "0.0.15",
+  "version": "0.0.16",
   "main": "server/app.js",
   "dependencies": {
     "accept-language-parser": "^1.0.2",
@@ -8,6 +8,7 @@
     "agi": "0.0.4",
     "asterisk-manager": "^0.1.15",
     "async": "^1.5.0",
+    "bluebird": "^3.1.1",
     "body-parser": "~1.14.1",
     "composable-middleware": "^0.3.0",
     "compression": "~1.6.0",
@@ -23,6 +24,7 @@
     "express-session": "~1.12.1",
     "file-base64": "^1.0.0",
     "formidable": "^1.0.17",
+    "freshdesk": "^0.1.1",
     "fs-extra": "^0.26.2",
     "generator-adf-widget": "^0.3.2",
     "geoip-lite": "^1.1.6",
@@ -41,6 +43,7 @@
     "morgan": "~1.6.1",
     "mustache": "^2.2.0",
     "mysql": "^2.10.0",
+    "node-sugarcrm-client": "^0.9.3",
     "node-uuid": "^1.4.7",
     "node-zendesk": "^1.1.5",
     "nodemailer": "^1.10.0",
@@ -122,6 +125,7 @@
     "karma-phantomjs-launcher": "~0.2.0",
     "karma-requirejs": "~0.2.2",
     "karma-script-launcher": "~0.1.0",
+    "mocha": "^2.3.4",
     "open": "~0.0.5",
     "requirejs": "~2.1.19",
     "should": "~7.0.2",
diff --git a/public/app/30a38ffd.app.js b/public/app/30a38ffd.app.js
new file mode 100644
index 0000000..901c260
--- /dev/null
+++ b/public/app/30a38ffd.app.js
@@ -0,0 +1,55 @@
+a.put("app/agent/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-people"></i>\n					<a href="/agents/list">{{ \'APPLICATION_AGENTS\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{agent.fullname}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-userpic">\n					<img ng-src="api/users/avatar/{{agent.userpic ? agent.userpic : \'unknown_avatar\'}}" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- START SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{agent.fullname}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{agent.role}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.agents.view.account\')}">\n							<a data-ng-href="/agents/view/{{agent.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/agent/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-people"></i>\n				<a href="/agents/list">{{ \'APPLICATION_AGENTS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/agents/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" ng-init="getFirstFreeInternal();">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-user font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_AGENT\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_ACCOUNT\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n			    <form name="forms.info" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n							<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n			      <!-- START USERNAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.name" required ng-remote-validate="/api/agents/validate/name"/>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END USERNAME -->\n\n			      <!-- START EMAIL -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="item.email" required ng-remote-validate="/api/agents/validate/email"/>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_EMAIL\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END EMAIL -->\n\n			      <!-- START PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n			        <span data-ng-show="(forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END PASSWORD -->\n\n			      <!-- START RE PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.nxEqual" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END RE PASSWORD -->\n\n						<!-- START INTERNAL -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n							<label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<div class="input-group">\n							<input type="number" min="1" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="item.internal" data-ng-disabled="!item.internalEnabled" data-ng-required="item.internalEnabled" ng-remote-validate="/api/agents/validate/internal"/>\n							<span class="input-group-addon">\n								<input type="checkbox" data-ng-model="item.internalEnabled">\n							</span>\n							</div>\n							<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n							<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.ngRemoteValidate" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_INTERNAL\' | translate}}.\n							</span>\n						</div>\n						<!-- END INTERNAL -->\n\n			      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_VOICE\' | translate}}" canexit="exitValidation(forms.voice.$valid)">\n					<form name="forms.voice" novalidate>\n\n						<!-- START ACCOUNTCODE -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.accountcode.$touched || forms.voice.$submitted) && forms.voice.accountcode.$invalid}">\n							<label class="control-label">{{\'APPLICATION_ACCOUNTCODE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="number" name="accountcode" placeholder="{{\'APPLICATION_ACCOUNTCODE\' | translate}}" class="form-control" data-ng-model="item.accountcode" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.accountcode.$touched || forms.voice.$submitted) && forms.voice.accountcode.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END ACCOUNTCODE -->\n\n						<!-- START TRANSPORT -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_TRANSPORT\' | translate}}</label>\n							<ui-select multiple name="transport" ng-model="item.transport" theme="bootstrap" ng-disabled="disabled">\n						    <ui-select-match placeholder="Select transport...">{{$item}}</ui-select-match>\n						    <ui-select-choices repeat="transport in [\'udp\', \'tcp\', \'ws\', \'wss\'] | filter: $select.search">\n						    	{{transport}}\n						    </ui-select-choices>\n						  </ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n							</span>\n						</div>\n						<!-- END TRANSPORT -->\n\n						<!-- START HOST -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.host.$touched || forms.voice.$submitted) && forms.voice.host.$invalid}">\n							<label class="control-label">{{\'APPLICATION_HOST\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.host" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.host.$touched || forms.voice.$submitted) && forms.voice.host.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END HOST -->\n\n						<!-- START NAT -->\n						<!-- <div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_NAT\' | translate}}</label>\n							<ui-select multiple ng-model="item.nat" name="nat" theme="bootstrap" ng-disabled="disabled">\n								<ui-select-match placeholder="{{ \'APPLICATION_SEARCH_FILTER\' | translate }}">{{$item}}</ui-select-match>\n								<ui-select-choices repeat="nat in [\'yes\', \'no\', \'never\', \'route\', \'force_rport\', \'comedia\'] | filter: $select.search">\n									{{nat}}\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_NAT\' | translate }}\n							</span>\n						</div> -->\n\n						<!-- END NAT -->\n\n						<!-- START TYPE -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.type.$touched || forms.voice.$submitted) && forms.voice.type.$invalid}">\n							<label class="control-label">{{\'APPLICATION_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.type" name="type" theme="bootstrap" required>\n								<ui-select-match placeholder="{{ \'APPLICATION_SEARCH_FILTER\' | translate }}">{{$select.selected}}</ui-select-match>\n								<ui-select-choices repeat="type in [\'friend\', \'user\', \'peer\'] | filter: $select.search">\n									<div ng-bind-html="type | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_TYPE\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.type.$touched || forms.voice.$submitted) && forms.voice.type.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END TYPE -->\n\n						<!-- START CODEC -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_ALLOWED_CODECS\' | translate}}</label>\n							<ui-select multiple ng-model="item.allow" name="allow" theme="bootstrap" ng-disabled="disabled">\n						    <ui-select-match placeholder="Select codec...">{{$item}}</ui-select-match>\n						    <ui-select-choices repeat="allow in [\'g729\', \'ilbc\', \'gsm\', \'ulaw\', \'alaw\'] | filter: $select.search">\n						    	{{allow}}\n						    </ui-select-choices>\n						  </ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n							</span>\n						</div>\n						<!-- END CODEC -->\n\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						<input class="btn default" type="button" value="{{\'APPLICATION_BACK\' | translate}}" wz-previous/>\n					</form>\n				</wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/analytic/metric/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_METRIC\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.metric" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.metric.name.$touched || forms.metric.$submitted) && forms.metric.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.metric.name.$touched || forms.metric.$submitted) && forms.metric.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START METRIC -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.metric.metric.$touched || forms.metric.$submitted) && forms.metric.metric.$invalid}">\n      <label class="control-label">{{\'APPLICATION_METRIC\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <textarea type="text" name="metric" placeholder="{{\'APPLICATION_METRIC\' | translate}}" class="form-control" data-ng-model="item.metric" required/></textarea>\n      <span data-ng-show="(forms.metric.metric.$touched || forms.metric.$submitted) && forms.metric.metric.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END METRIC -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="metric.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.metric.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/metric/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-calculator"></i>\n					<a href="/analytics/metrics/list">{{ \'APPLICATION_METRICS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-calculator font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_METRICS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Metrics.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<button class="btn green-jungle " ng-click="create()">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_METRIC\' | translate }}\n						</button>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getMetrics([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="metrics.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedMetrics" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.metricsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="metricByPage in metricsByPage | filter: $select.search">\n													<div ng-bind-html="metricByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(metric, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="metric in displayedMetrics" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="metric.defaultEntry" type="checkbox" checklist-model="Metrics.checked" checklist-value="metric.id"></td>\n								<td>{{metric.name}}</td>\n					      <td>{{metric.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/analytics/metrics/view/{{metric.id}}/settings" data-ng-class="{\'disabled\': metric.defaultEntry}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(metric.name,metric.id)" data-ng-class="{\'disabled\': metric.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedMetrics.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_METRICS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.metricsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/metric/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getMetric()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-eye"></i>\n					<a href="/analytics/metrics/list">{{ \'APPLICATION_METRICS\' | translate }}</a>\n					<i data-ng-show="metric" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="metric">\n					<a href="#">{{metric.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/metric.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{metric.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.analytics.metrics.view.settings\')}">\n							<a data-ng-href="/analytics/metrics/view/{{metric.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/metric/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_METRIC\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateMetric()" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="metric.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START METRIC -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.metric.$touched || forms.general.$submitted) && forms.general.metric.$invalid}">\n								<label class="control-label">{{\'APPLICATION_METRIC\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<textarea type="text" name="metric" placeholder="{{\'APPLICATION_METRIC\' | translate}}" class="form-control" data-ng-model="metric.metric" required/></textarea>\n								<span data-ng-show="(forms.general.metric.$touched || forms.general.$submitted) && forms.general.metric.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END METRIC -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="metric.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/analytic/report/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_TAG\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.tag" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.tag.name.$touched || forms.tag.$submitted) && forms.tag.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.tag.name.$touched || forms.tag.$submitted) && forms.tag.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.tag.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getTrees()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-book-open"></i>\n					<a href="/analytics/reports/list">{{ \'APPLICATION_REPORTS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n		<div class="col-fixed">\n			<!-- BEGIN Portlet PORTLET-->\n			<div class="portlet light bordered">\n				<div class="portlet-title">\n					<div class="caption font-green-sharp" style="padding-left:10px;">\n						<i class="icon-folder font-green-sharp"></i>\n						<span class="caption-subject">{{ \'APPLICATION_FOLDERS\' | translate }} </span>\n					</div>\n					<div class="inputs">\n						<div class="portlet-input input-inline input-small">\n							<div class="input-icon right">\n								<i class="icon-magnifier"></i>\n								<input type="text" data-ng-model="searchField" data-ng-change="searchTrees()" class="form-control input-circle" placeholder="search...">\n							</div>\n						</div>\n					</div>\n				</div>\n				<div class="portlet-body">\n					<div js-tree="defaultTreeConfig" ng-model="defaultTreeData" should-apply="ac()" tree="defaultTreeInstance" tree-events="ready:initDefaultScopeTree;select_node:selectDefaultNode;"></div>\n					<div js-tree="customTreeConfig" ng-model="customTreeData" should-apply="ac()" tree="customTreeInstance" tree-events="ready:initCustomScopeTree;select_node:selectCustomNode;rename_node:updateCustomTree;delete_node:updateCustomTree;move_node:updateCustomTree;create_node:updateCustomTree;"></div>\n				</div>\n			</div>\n			<!-- END Portlet PORTLET-->\n		</div>\n		<div class="row tree-row">\n			<div class="col-md-12">\n				<!-- BEGIN Portlet PORTLET-->\n				<div class="portlet light bordered">\n					<div class="portlet-title">\n						<div class="caption font-green-sharp">\n							<i class="icon-book-open font-green-sharp"></i>\n							<span class="caption-subject">{{ \'APPLICATION_REPORTS\' | translate }}<span data-ng-if="selectedNode"> - {{selectedNode}}</span></span>\n						</div>\n					</div>\n					<div class="portlet-body">\n						<!-- START TABLE -->\n						<table data-ng-if="defaultTreeReady && customTreeReady" st-table="displayedReports" st-pipe="initList" class="table table-striped table-bordered table-hover">\n							<div class="table-responsive">\n								<thead>\n									<tr>\n										<th colspan="4">\n											<div class="row">\n												<div class="col-md-6">\n													<ui-select class="input-xsmall" ng-model="conf.reportsByPage" theme="bootstrap" ng-disabled="disabled">\n														<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n														<ui-select-choices repeat="reportByPage in reportsByPage | filter: $select.search">\n															<div ng-bind-html="reportByPage.name | highlight: $select.search"></div>\n														</ui-select-choices>\n													</ui-select>\n												</div>\n												<div class="col-md-6">\n													<div class="input-group input-medium pull-right">\n														<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n														<span class="input-group-addon">\n															<i class="fa fa-search"></i>\n														</span>\n													</div>\n												</div>\n											</div>\n										</th>\n									</tr>\n									<tr>\n										<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(report, checked)" checklist-model checklist-value="id"></th>\n										<th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n										<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n										<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n									</tr>\n								</thead>\n								<tbody>\n									<tr data-ng-repeat="report in displayedReports" class="animate-repeat">\n										<td style="text-align: center; vertical-align: middle"><input data-ng-hide="report.defaultEntry" type="checkbox" checklist-model="Reports.checked" checklist-value="report.id"></td>\n										<td>{{report.name}}</td>\n										<td>{{report.description}}</td>\n										<td>\n											<a class="btn default btn-xs blue-stripe" data-ng-href="/analytics/reports/view/{{report.id}}/settings">\n												{{ \'APPLICATION_SETTINGS\' | translate}}\n											</a>\n											<a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(report.name,report.id)">\n												{{ \'APPLICATION_DELETE\' | translate }}\n											</a>\n										</td>\n									</tr>\n									<tr data-ng-hide="displayedReports.length">\n										<td colspan="4" style="text-align:center;">\n											<i>{{ \'MESSAGE_NO_REPORTS_AVAILABLE\' | translate }}</i>\n										</td>\n									</tr>\n								</tbody>\n								<tfoot>\n									<tr>\n										<td/>\n										<td>\n											<div class="input-icon right">\n												<i class="fa fa-search"></i>\n												<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n											</div>\n										</td>\n										<td>\n											<div class="input-icon right">\n												<i class="fa fa-search"></i>\n												<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n											</div>\n										</td>\n										<td/>\n									</tr>\n									<tr>\n										<td colspan="4" class="text-center">\n											<div st-pagination class="pagination" st-items-by-page="conf.reportsByPage.value" st-displayed-pages="7"></div>\n										</td>\n									</tr>\n								</tfoot>\n						</div>\n						</table>\n						<!-- END TABLE -->\n					</div>\n				</div>\n				<!-- END Portlet PORTLET-->\n			</div>\n		</div>\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/analytic/report/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getPage()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-link"></i>\n					<a href="/analytics/reports/list">{{ \'APPLICATION_REPORTS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-link font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_REPORTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<!-- <div class="btn-group" data-ng-show="trunks.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div> -->\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/analytics/reports/wizard">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_REPORT\' | translate }}\n						</a>\n					</div>\n					<!-- <a class="btn btn-icon-only btn-default" href="#" ng-csv="getTrunks([\'name\', \'host\', \'context\', \'description\'])" csv-header="[\'Name\', \'Host\', \'Context\', \'Description\']" field-separator=";" filename="trunks.csv"> -->\n					<!-- <i class="icon-cloud-download"></i></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<div ui-grid="gridOptions" ui-grid-grouping class="grid"></div>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/report/wizard/wizard.html",'<div class="col-md-12" data-ng-init="initWizard()">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-link"></i>\n				<a href="/analytics/reports/list">{{ \'APPLICATION_REPORTS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_NEW_REPORT\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-link font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_NEW_REPORT\' | translate }}</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n			<form name="forms.general" data-ng-submit="forms.general.$valid && createItem()" novalidate>\n			</form>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/automation/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-bulb"></i>\n						<a href="#">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-bulb font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Automations.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_AUTOMATION\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/automations/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getAutomations([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="automations.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedAutomations" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.AutomationsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="AutomationByPage in AutomationsByPage | filter: $select.search">\n													<div ng-bind-html="AutomationByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(Automation, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="channel">{{ \'APPLICATION_CHANNEL\' | translate }}</th>\n								<th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="Automation in displayedAutomations">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="Automations.checked" checklist-value="Automation.id"></td>\n					      <td>{{Automation.name}}</td>\n								<td>{{Automation.description}}</td>\n								<td>{{Automation.channel | capitalize}}</td>\n								<td>\n									<input\n										data-ng-change="updateItem(Automation.id, Automation.status)",\n								    bs-switch\n								    ng-model="Automation.status"\n								    type="checkbox"\n								    switch-active="{{ isActive }}"\n								    switch-on-text="{{ onText }}"\n								    switch-off-text="{{ offText }}"\n								    switch-on-color="{{ onColor }}"\n								    switch-off-color="{{ offColor }}"\n								    switch-animate="{{ animate }}"\n								    switch-size="{{ size }}"\n								    switch-label="{{ label }}"\n								    switch-icon="{{ icon }}"\n								    switch-radio-off="{{ radioOff }}"\n								    switch-label-width="{{ labelWidth }}"\n								    switch-handle-width="{{ handleWidth }}">\n								</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/automations/view/{{Automation.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(Automation.name, Automation.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedAutomations.length">\n								<td colspan="6" class="text-center">\n									<i>No available automations</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="channel" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CHANNEL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.AutomationsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/automation/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="automation"></i>\n				</li>\n				<li data-ng-show="automation">\n					<a href="#">{{ automation.description || automation.name }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/automation.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ automation.name }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{ automation.description }}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.automations.view.settings\')}">\n							<a href="/automations/view/{{automation.id}}/settings">\n							<i class="icon-bulb"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/automation/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_CONDITIONS\' | translate}} & {{\'APPLICATION_ACTIONS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<!-- <pre>\n					{{conditionsData.query | json}}\n				</pre>\n				<pre>\n					{{actionsData.query | json}}\n				</pre> -->\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateAutomation()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="automation.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="automation.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n					<div class="tab-pane" id="tab_1_2">\n					<div class="portlet light bordered">\n						<div class="portlet-title">\n							<div class="caption font-blue-hoki">\n								<i class="icon-tag font-blue-hoki"></i>\n								<span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n							</div>\n						</div>\n						<div class="portlet-body">\n							<query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$automations.operators" properties="properties[automation.channel]"></query-builder>\n						</div>\n					</div>\n					<div class="portlet light bordered">\n						<div class="portlet-title">\n							<div class="caption font-blue-hoki">\n								<i class="icon-tag font-blue-hoki"></i>\n								<span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n							</div>\n						</div>\n						<div class="portlet-body">\n							<query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[automation.channel]"></query-builder>\n						</div>\n					</div>\n\n						<input class="btn green-haze" type="button" value="{{\'APPLICATION_UPDATE\' | translate}}" data-ng-click="updateAutomation()"/>\n					</div>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/automation/wizard/wizard.html",'<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN PAGE HEADER-->\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n		<!-- END PAGE HEADER-->\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-bulb font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<!-- <pre>\n						{{item | json}}\n					</pre>\n					<pre>\n						{{conditionsData.query | json}}\n					</pre>\n					<pre>\n						{{actionsData.query | json}}\n					</pre> -->\n					<wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n						<form name="forms.general" data-ng-submit="submit()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.name.$touched && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.general.name.$touched && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n						</form>\n					</wz-step>\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(conditionsData.query.length && actionsData.query.length)">\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_CHANNEL\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<div class="form-group"  >\n									<label class="control-label">{{ \'APPLICATION_CHANNEL\' | translate }}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="item.channel" name="channel" theme="bootstrap" required>\n										<ui-select-match placeholder="{{ \'APPLICATION_CHANNEL\' | translate }}">{{$select.selected | capitalize}}</ui-select-match>\n										<ui-select-choices repeat="channel in $automations.channels | filter: $select.search">\n											<div ng-bind-html="channel | highlight: $select.search | capitalize"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n							</div>\n						</div>\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$automations.operators" properties="properties[item.channel]"></query-builder>\n							</div>\n						</div>\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[item.channel]"></query-builder>\n							</div>\n						</div>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/preview/preview.html",'<style>\n  .xc_footer\n  {\n  	text-align: center;\n  	padding-bottom: 5px;\n  }\n\n  .xc_powered\n  {\n  	color: grey;\n    font: 10px/16px "Lucida Grande","Lucida Sans Unicode",Arial,Verdana,sans-serif;\n  	padding-bottom: 5px;\n  }\n\n  .xc_chat_container\n  {\n  	//width:379px;\n  	//position:fixed;\n  	//bottom:0;\n  	//right:50px;\n  	z-index:9999;\n  	background-color:transparent;\n  }\n\n  .xc_chat_container *\n  {\n  	font-family:Arial,Helvetica,sans-serif;\n  	font-size:13px;\n  	margin:0;\n  	padding:0;\n  }\n\n  .xc_chat_container p\n  {\n  	margin:5px 0;\n  }\n\n  .xc_signup_wrapper\n  {\n  	max-height:375px;\n  }\n\n  .xc_conversation_container\n  {\n  	max-height:375px;\n  	list-style:none;\n  	overflow:auto;\n  	margin:0;\n  	padding:20px 10px;\n  }\n\n  .xc_conversation_container a\n  {\n  	color:#036;\n  }\n\n  .xc_conversation_container a.xc_btn_style\n  {\n  	color:#fff;\n  }\n\n  div.xc_chat_head\n  {\n  	color:#fff;\n  	background:{{chatWebsite.color}};\n  	//border-radius: 20px 20px 0px 0px !important;\n  	height:52px;\n  	line-height:55px;\n  	cursor:pointer;\n  }\n\n  div.xc_chat_head.rounded\n  {\n  	border-radius: 20px 20px 0px 0px !important;\n  }\n\n  div.xc_chat_head.squared\n  {\n  	//border-radius: 20px 20px 0px 0px !important;\n  }\n\n  .xc_chat_head-title\n  {\n  	margin:5px 0 0 15px;\n  	color: #fff;\n  }\n\n  .xc_header_icon\n  {\n  	display:block;\n  	background-image:url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/icon_visitorchat.png);\n  	width:21px;\n  	height:16px;\n  	float:right;\n  	margin:20px 20px 0 0;\n  }\n\n  .xc_header_icon span.xc_notification_badge span\n  {\n  	display:block;\n  	height:16px;\n  	width:15px;\n  	text-align:center;\n  	font-size:9px;\n  	color:#555;\n  	position:relative;\n  	top:-20px;\n  	left:4px;\n  	margin:0;\n  	padding:0;\n  }\n\n  .xc_sub-head-spacer\n  {\n  	padding:1px;\n  }\n\n  .xc_conversation\n  {\n  	display:none;\n  	margin:0 12px 0 11px;\n  }\n\n  .xc_chat_toggle_container\n  {\n  	/*background:mediumslateblue center -52px;*/\n  	background: white;\n  	border-style: solid;\n    border-width: 1px;\n  	border-color: {{chatWebsite.color}};\n  	//display:none;\n  }\n\n  .xc_signup_wrapper,.xc_notifications_wrapper,.xc_enquiry_wrapper\n  {\n  	//display:none;\n    display:block;\n  	overflow:auto;\n  	line-height:1;\n  	padding:25px;\n  }\n\n  .xc_exit_chat_container\n  {\n  	text-align:right;\n  	width:95%;\n  	margin:0 auto;\n  	padding:5px 1px 0 0;\n  }\n\n  .xc_exit_chat_container span,.xc_exit_chat_container a\n  {\n  	font-size:80%;\n  	color:#666;\n  	text-decoration:none;\n  }\n\n  .xc_exit_chat_container a:hover\n  {\n  	color:#333;\n  }\n\n  a.xc_btn_exit_chat_confirm:hover\n  {\n  	color:red;\n  }\n\n  a.xc_btn_exit_chat_cancel:hover\n  {\n  	color:#0c0;\n  }\n\n  form.xc_form_reply\n  {\n  	position:relative;\n  }\n\n  .xc_form_reply\n  {\n  	/*background-color:#e3e3e3;*/\n  	text-align:center;\n  	/*border-top:1px solid #d3d3d3;*/\n  }\n\n  .xc_input_message\n  {\n  	height:100px;\n  	margin:10px auto 5px;\n  }\n\n  .xc_input_enquiry_message\n  {\n  	height:100px;\n  }\n\n  .xc_form_signup,.xc_form_enquiry\n  {\n  	text-align:center;\n  }\n\n  .xc_chat_container textarea,.xc_chat_container input[type=text]\n  {\n  	width:95%;\n  	min-width:95%;\n  	max-width:95%;\n  	-webkit-box-sizing:border-box;\n  	-moz-box-sizing:border-box;\n  	box-sizing:border-box;\n  	background-color:#fff;\n  	border:1px solid #ccc;\n  	-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  	-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  	box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  	-webkit-transition:border linear .2s, box-shadow linear .2s;\n  	-moz-transition:border linear .2s, box-shadow linear .2s;\n  	-o-transition:border linear .2s, box-shadow linear .2s;\n  	transition:border linear .2s, box-shadow linear .2s;\n  	display:inline-block;\n  	font-size:14px;\n  	line-height:20px;\n  	color:#555;\n  	-webkit-border-radius:4px;\n  	-moz-border-radius:4px;\n  	border-radius:4px;\n  	vertical-align:middle;\n  	margin:3px 0;\n  	padding:4px 6px;\n  	resize: none;\n  }\n\n  .xc_chat_container textarea:focus,.xc_chat_container input[type=text]:focus\n  {\n  	outline: {{chatWebsite.color_focus}} auto 5px;\n  }\n\n  .xc_chat_container input[type=text]\n  {\n    	height: 30px;\n  }\n\n  .xc_message_sending textarea, .xc_enquiry_sending textarea\n  {\n    	background: #fff url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/loading.gif) 98% 5px no-repeat;\n  }\n\n  .xc_chatrow\n  {\n  	display:block;\n  	border-top:1px dashed #e3e3e3;\n  	margin:5px 0;\n    	clear: both;\n  }\n\n  .xc_chatrow p\n  {\n  	color:#444;\n  	word-wrap:break-word;\n  }\n\n  .xc_time\n  {\n  	float:right;\n  	font-size:80%;\n  	color:#ccc;\n  	padding-left:12px;\n  	margin:3px;\n  }\n\n  .xc_submission_pending\n  {\n  	background:transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_clock.png) left center no-repeat;\n  }\n\n  .xc_submission_confirmed\n  {\n  	background:transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_tick.png) left center no-repeat;\n  }\n\n  .xc_fullname\n  {\n  	font-weight:700;\n  }\n\n  .xc_fullname:after\n  {\n  	content:":";\n  }\n\n  .xc_avatar\n  {\n    	float: left;\n    	margin: 0 5px 5px 0;\n    	display: inline-block;\n    	width: 40px;\n    	height: 40px;\n    	border-radius: 5px;\n    	-moz-border-radius: 5px;\n    	-webkit-border-radius: 5px;\n  }\n\n  .xc_smilie\n  {\n  	background-repeat:no-repeat;\n  	display:inline-block;\n  	width:18px;\n  	height:18px;\n  	text-indent:-9999px;\n  	white-space:nowrap;\n  }\n\n  .xc_btn_load_more\n  {\n  	width:100%!important;\n  }\n\n  .xc_notifications_wrapper\n  {\n  	text-shadow:0 1px 0 rgba(255,255,255,0.5);\n  }\n\n  .xc_notification_success\n  {\n  	color:#468847;\n  }\n\n  .xc_notification_error\n  {\n  	color:#b94a48;\n  }\n\n  .xc_errorlist\n  {\n  	margin:0 0 0 25px;\n  	padding:0;\n  }\n\n  i.xc_btn_notifications_close\n  {\n  	float:right;\n  	font-weight:700;\n  	font-size:20px;\n  	color:#ccc;\n  	cursor:pointer;\n  	margin:-15px 0 0;\n  	padding:0;\n  }\n\n  .xc_btn_style\n  {\n  	width:95%;\n  	text-align:center;\n  	line-height:1.2;\n  	font-size:90%;\n  	-moz-box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  	-webkit-box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  	box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  	background:0;\n  	background-color:{{chatWebsite.color_button}};\n  	-moz-border-radius:4px;\n  	-webkit-border-radius:4px;\n  	border-radius:4px;\n  	border:1px solid {{chatWebsite.color_button}};\n  	display:inline-block;\n  	color:#fff;\n  	font-weight:700;\n  	text-decoration:none;\n  	text-shadow:1px 1px 0 #000c17;\n  	margin:0 auto 5px;\n  	padding:2px 0;\n  }\n\n  .xc_btn_style:hover\n  {\n  	background:0;\n  	background-color:{{chatWebsite.color_button}};\n      color: #fff;\n    	text-decoration: none;\n  }\n\n  .xc_btn_style:active\n  {\n  	position:relative;\n  	top:1px;\n  }\n\n  .xc_composing_container\n  {\n    	display: none;\n    width: 95%;\n    margin: 0 auto;\n    background: transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_pencil.png) 6px center no-repeat;\n    padding-left: 19px;\n    font-style: italic;\n  }\n\n  @media only screen and (max-height: 620px) {\n  	.xc_conversation_container\n  	{\n  		max-height:300px!important;\n  	}\n  }\n\n  @media only screen and (max-height: 545px) {\n  	.xc_conversation_container\n  	{\n  		max-height:200px!important;\n  	}\n  }\n\n  @media only screen and (max-height: 445px) {\n  	.xc_conversation_container\n  	{\n  		max-height:150px!important;\n  	}\n  }\n\n  @media only screen and (max-width: 480px) {\n  	.xc_chat_container\n  	{\n  		width:95%!important;\n  		right:auto!important;\n  		-webkit-border-top-left-radius:15px;\n  		-webkit-border-top-right-radius:15px;\n  		-moz-border-radius-topleft:15px;\n  		-moz-border-radius-topright:15px;\n  		border-top-left-radius:15px;\n  		border-top-right-radius:15px;\n  		box-shadow:0 0 5px rgba(0,0,0,.5);\n  		-webkit-box-shadow:0 0 5px rgba(0,0,0,.5);\n  		-moz-box-shadow:0 0 5px rgba(0,0,0,.5);\n  	}\n\n  	div.xc_chat_head\n  	{\n  		background-color:#036;\n  		background-image:none;\n  		line-height:25px;\n  		height:auto;\n  		-webkit-border-top-left-radius:15px;\n  		-webkit-border-top-right-radius:15px;\n  		-moz-border-radius-topleft:15px;\n  		-moz-border-radius-topright:15px;\n  		border-top-left-radius:15px;\n  		border-top-right-radius:15px;\n  		padding:10px;\n  	}\n\n  	.xc_chat_toggle_container\n  	{\n  		background-color:#fff;\n  		background-image:none;\n  		border-color:#036;\n  		border-style:solid;\n  		border-width:0 1px;\n  	}\n\n  	.xc_header_icon\n  	{\n  		background-image:url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/icon_visitorchat.png);\n  		margin:0;\n  	}\n\n  	.xc_header_icon span.xc_notification_badge span\n  	{\n  		top:-5px;\n  		left:5px;\n  	}\n\n  	.xc_notification_success\n  	{\n  		background-color:#dff0d8;\n  		border:1px solid #d6e9c6;\n  	}\n\n  	.xc_conversation_container\n  	{\n  		max-height:375px;\n  		border-color:#036;\n  	}\n\n  	.xc_notification_error\n  	{\n  		background-color:#f2dede;\n  		border:1px solid #eed3d7;\n  	}\n\n  	.xc_sub-head-spacer\n  	{\n  		display:none;\n  		padding:0;\n  	}\n\n  	.xc_chat_head-title,.xc_conversation\n  	{\n  		margin:0;\n  	}\n  }\n</style>\n<div class="xc_chat_container">\n    <div class="xc_chat_head {{chatWebsite.header_shape}}">\n      <i class="xc_header_icon">\n        <span class="xc_notification_badge">\n          <span class="xc_notification_badge_number"></span>\n        </span>\n      </i>\n      <span class="xc_chat_head-title">{{statePreview.state == \'online\' ? chatWebsite.header_online : chatWebsite.header_offline}}</span>\n    </div>\n    <div class="xc_chat_toggle_container">\n        <div class="xc_sub-head-spacer"></div>\n        <div class="xc_notifications_wrapper">\n            <!--<i class="xc_btn_notifications_close">&times;</i>-->\n            <ul class="xc_errorlist"></ul>\n        </div>\n        <div class="xc_enquiry_wrapper" data-ng-show=\'statePreview.state == "offline"\'>\n            <form class="xc_form_enquiry" accept-charset="UTF-8">\n                <p ng-bind-html=\'chatWebsite.offline_message\'></p>\n                <input maxlength="45" type="text" name="data[Enquiry][fullname]" placeholder="{{chatWebsite.username_placeholder}}" class="xc_input_enquiry_fullname" />\n                <input maxlength="85" type="text" name="data[Enquiry][email]" placeholder="{{chatWebsite.email_placeholder}}" class="xc_input_enquiry_email" />\n                <textarea maxlength="1500" placeholder="{{chatWebsite.enquiry_message_placeholder}}" name="data[Enquiry][message]" class="xc_input_enquiry_message"></textarea>\n                <a href="#" class="xc_btn_enquiry xc_btn_style">{{chatWebsite.enquiry_button}}</a></form>\n        </div>\n        <div class="xc_signup_wrapper" data-ng-show=\'statePreview.state == "online"\'>\n            <form class="xc_form_signup" accept-charset="UTF-8">\n                <p ng-bind-html=\'chatWebsite.online_message\'></p>\n                <input maxlength="45" type="text" name="data[Discussion][fullname]" placeholder="{{chatWebsite.username_placeholder}}" class="xc_input_fullname" />\n                <input maxlength="85" type="text" name="data[Discussion][email]" placeholder="{{chatWebsite.email_placeholder}}" class="xc_input_email" />\n                <input type="hidden" class="xc_input_visitor_time" name="data[Discussion][visitor_time]" /><a href="#" class="xc_btn_signup xc_btn_style">{{chatWebsite.start_chat_button}}</a></form>\n        </div>\n        <!-- <div class="xc_conversation">\n            <div class="xc_conversation_container">\n                <p class="xc_message_intro" data-id="-10">{FirstMessageText}</p>\n            </div>\n            <div class="xc_composing_container"></div>\n            <form class="xc_form_reply" accept-charset="UTF-8">\n                <div class="xc_exit_chat_container"><a href="#" class="xc_btn_exit_chat">{ExitChatButtonText}</a>\n                    <div class="xc_exit_chat_confirmation_wrapper" style="display: none;"><span>{ExitChatQuestionText} </span><a href="#" class="xc_btn_exit_chat_confirm">{ExitChatButtonConfirmText}</a><span> | </span><a href="#" class="xc_btn_exit_chat_cancel">{ExitChatButtonCancelText}</a></div>\n                </div>\n                <textarea maxlength="750" placeholder="{MessagePlaceholderText}" name="data[Message][message]" class="xc_input_message"></textarea><a href="#" class="xc_btn_send xc_btn_style">{MessageSendButtonText}</a></form>\n        </div> -->\n        <div class="xc_footer">\n            <div class="xc_powered"><a>Powered by Xenialab | Trademark xCALLY</a></div>\n        </div>\n    </div>\n</div>\n'),
+a.put("app/chat/queue/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-bubble"></i>\n						<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-layers"></i>\n						<a href="/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_QUEUE\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="chatQueues.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<!-- <li>\n								<a href="#" data-ng-click="open()">\n								<i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n							</li> -->\n							<li>\n								<a href="/chat/queues/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n							<!-- <li>\n								<a href="#">\n								<i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n							</li> -->\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getChatQueues([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Username\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="chat_queues.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedChatQueues" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.chatQueuesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="chatQueueByPage in chatQueuesByPage | filter: $select.search">\n													<div ng-bind-html="chatQueueByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(queue, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate }}</th>\n								<th st-sort="timeout">{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="chatQueue in displayedChatQueues" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="chatQueues.checked" checklist-value="chatQueue.id"></td>\n					      <td>{{chatQueue.name}}</td>\n								<td>{{chatQueue.description}}</td>\n								<td>{{chatQueue.strategy | uppercase}}</td>\n								<td>{{chatQueue.timeout}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/chat/queues/view/{{chatQueue.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(chatQueue.name,chatQueue.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedChatQueues.length">\n								<td colspan="6" style="text-align:center;">\n									<i>No chat queues available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.chatQueuesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body" style="width: 50%; margin: 0 auto;">\n				<!-- BEGIN FORM-->\n				<form action="index.html" class="form-horizontal form-row-seperated">\n					<div class="form-body text-center">\n						<div class="form-group last">\n							<div class="col-md-9" id="multi-select-team">\n							</div>\n						</div>\n					</div>\n				</form>\n				<!-- END FORM-->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/chat/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-bubble"></i>\n					<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-layers"></i>\n					<a href="/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					<i data-ng-show="queue" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="queue">\n					<a href="#">{{queue.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{queue.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.chat.queues.view.settings\')}">\n							<a data-ng-href="/chat/queues/view/{{queue.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.chat.queues.view.agents\')}">\n							<a data-ng-href="/chat/queues/view/{{queue.id}}/agents">\n							<i class="icon-users"></i>\n							{{ \'APPLICATION_AGENTS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/queue/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.general" data-ng-submit="forms.general.$valid && updateChatQueue()" novalidate>\n					<!-- START NAME -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n						<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n						<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n						<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END NAME -->\n\n					<!-- START DESCRIPTION -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n						<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n					</div>\n					<!-- END DESCRIPTION -->\n\n					<!-- START TIMEOUT -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_AGENT\' | translate}} {{\'APPLICATION_TIMEOUT\' | translate}}</label>\n						<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" min="1" data-ng-model="queue.timeout"/>\n					</div>\n					<!-- END TIMEOUT -->\n\n					<!-- START HEADER SHAPE -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n						<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n						<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n						<ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n							<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n							<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n								<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n					</div>\n					<!-- END HEADER SHAPE -->\n					<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n				</form>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/chat/queue/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-envelope"></i>\n				<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n        <i class="fa fa-angle-right"></i>\n			</li>\n      <li>\n				<i class="icon-layers"></i>\n				<a href="/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-layers font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n					<form name="forms.general" data-ng-submit="forms.general.$valid && createItem()" novalidate>\n						<!-- START NAME -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n							<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n						</div>\n						<!-- END DESCRIPTION -->\n\n						<!-- START TIMEOUT -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n							<label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="number" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n              <span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid && forms.general.timeout.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n            </div>\n						<!-- END TIMEOUT -->\n\n						<!-- START HEADER SHAPE -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n							<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n								<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n									<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n              <span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid && forms.general.strategy.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n						</div>\n						<!-- END HEADER SHAPE -->\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CREATE\' | translate}}"/>\n					</form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/chat/realtime/view/agent/queue/queue.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<div id="grid1" ui-grid="gridOptions" ui-grid-tree-view class="grid"></div>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/realtime/view/agent/timeline/timeline.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<div id="grid1" ui-grid="gridOptions" class="grid"></div>\n		<!-- START TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/realtime/view/session/session.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initChats()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedChats" st-safe-src="sessions" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="12">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.sessionsByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="sessionByPage in sessionsByPage | filter: $select.search">\n											<div ng-bind-html="sessionByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="visitorname" class="input-medium">{{ \'APPLICATION_VISITOR\' | translate }}</th>\n						<th st-sort="websitename" class="input-small">{{ \'APPLICATION_WEB_SITE\' | translate }}</th>\n						<th st-sort="sessioncalledAt" st-sort-default="reverse">{{ \'APPLICATION_JOIN_AT\' | translate }}</th>\n						<th st-sort="sessionconnectAt">{{ \'APPLICATION_LEAVE_AT\' | translate }}</th>\n						<th st-sort="sessionringnoanswerAt">{{ \'APPLICATION_UNMANAGED_AT\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="session in displayedChats">\n						<td>\n							<span>\n								<i data-ng-class="{\'icon-user font-yellow\': session.mailjoinAt && !session.mailleaveAt,\n								\'icon-user-following font-green\': session.fullname,\n								\'icon-user-unfollow font-red\': session.mailunmanagedAt}"></i>\n							</span>\n						</td>\n						<td>{{session.uniqueid}}</td>\n						<td>{{session.chatqueuename}}</td>\n						<td>{{session.fullname}}</td>\n						<td>{{session.visitorname + \' [\' + session.visitoremail + \']\'}}</td>\n						<td>{{session.websitename}}</td>\n						<td>\n							<time is="relative-time" datetime="{{session.chatjoinAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{session.chatleaveAt}}" data-ng-show="session.chatleaveAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{session.chatunmanagedAt}}" data-ng-show="session.chatunmanagedAt">\n								April 1, 2014\n							</time>\n						</td>\n			    </tr>\n					<tr data-ng-hide="displayedChats.length">\n						<td colspan="11" style="text-align:center;">\n							<i>No sessions available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="membername" placeholder="{{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="visitorname" placeholder="{{ \'APPLICATION_VISITOR\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="websitename" placeholder="{{ \'APPLICATION_WEB_SITE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="7"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="12" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.sessionsByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-energy"></i>\n					<a href="/chat/realtime/list">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<div>\n		    <nav class="navbar navbar-default" role="navigation">\n		        <div class="navbar-header">\n		            <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n		                <span class="sr-only">Toggle navigation</span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		            </button>\n		            <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n		        </div>\n\n		        <!-- Collect the nav links, forms, and other content for toggling -->\n		        <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n		            <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_AGENTS\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'agents\'></tree>\n		                </li>\n										<li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_SESSIONS\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'sessions\'></tree>\n		                </li>\n		            </ul>\n		            <!-- <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_QUEUES\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'queues\'></tree>\n		                </li>\n		            </ul> -->\n		        </div>\n		        <!-- /.navbar-collapse -->\n		    </nav>\n		</div>\n		<div ui-view></div>\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.conversation.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="col-md-12">\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-notebook font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_CONVERSATIONS\' | translate }}</a> </span>\n			</div>\n			<div class="actions">\n				<a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedChatRooms" filename="rooms.csv">\n				<i class="icon-cloud-download"></i></a>\n				<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<!-- START TABLE -->\n			<table st-table="displayedChatRooms" st-safe-src="chatRooms" class="table table-bordered table-hover">\n				<div class="table-responsive">\n					<thead>\n						<tr>\n							<th colspan="9">\n								<div class="row">\n									<div class="col-md-6">\n										<select class="form-control input-small select2me" data-ng-model="conf.chatRoomsByPage">\n											<option value="10">10</option>\n											<option value="25">25</option>\n											<option value="50">50</option>\n											<option value="{{chatRooms.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n										</select>\n									</div>\n									<div class="col-md-6">\n										<div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search"/>\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div>\n									</div>\n								</div>\n							</th>\n						</tr>\n						<tr>\n							<th st-sort="type">{{ \'APPLICATION_TYPE\' | translate }}</th>\n							<th st-sort="users">{{ \'APPLICATION_USERS\' | translate }}</th>\n							<th st-sort="visitor">{{ \'APPLICATION_VISITOR\' | translate }}</th>\n							<th st-sort="status">{{ \'APPLICATION_STATUS\' | translate }}</th>\n							<th st-sort="createdAt">{{ \'APPLICATION_TIME\' | translate }}</th>\n						</tr>\n					</thead>\n					<tbody>\n						<tr data-ng-repeat="chatRoom in displayedChatRooms" data-ng-click="$location.path(\'/chat/statistics/conversation/\' + chatRoom.id)">\n							<td style="text-align: center;">{{chatRoom.type | uppercase}}</td>\n							<td style="text-align: center;">{{getUsersFullname(chatRoom.Users)}}</td>\n							<td style="text-align: center;">{{chatRoom.ChatVisitor.email}}</td>\n							<td style="text-align: center;">\n								<span class="label label-sm label-success" data-ng-class="{\'label-success\': chatRoom.status == \'close\', \'label-warning\': chatRoom.status == \'open\'}">\n									{{chatRoom.status | capitalize}}\n								</span>\n							</td>\n							<td style="text-align: center;">\n								<time is="relative-time" datetime="{{chatRoom.createdAt}}">\n									April 1, 2014\n								</time>\n							</td>\n						</tr>\n					</tbody>\n					<tfoot>\n						<tr>\n							<td colspan="9" class="text-center">\n								<div st-pagination class="pagination" st-items-by-page="conf.chatRoomsByPage" st-displayed-pages="7"></div>\n							</td>\n						</tr>\n					</tfoot>\n			</div>\n			</table>\n			<!-- END TABLE -->\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.conversation.view.html",'<!-- BEGIN PAGE CONTENT-->\n<div data-ng-init="initRoomView()">\n	<div class="col-md-6">\n		<!-- BEGIN PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-book-open font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TRANSCRIPT\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="chatRoom.ChatMessages" filename="chatMessages.csv">\n					<i class="icon-cloud-download"></i></a>\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="scroller" style="height: 352px;" data-always-visible="1" data-rail-visible1="1">\n					<ul class="chats">\n						<li data-ng-class="{\'out\': chatMessage.visitorId, \'in\': chatMessage.userId}" data-ng-repeat="chatMessage in chatRoom.ChatMessages | orderBy:\'-createdAt\'">\n							<img class="avatar" data-ng-src="api/users/{{chatMessage.userId ? chatMessage.userId : \'avatar\'}}/avatar"/>\n							<div class="message">\n								<span class="arrow">\n								</span>\n								<a href="#" class="name">\n								{{chatMessage.fullname}} </a>\n								<span class="datetime">\n									<time is="relative-time" datetime="{{chatMessage.createdAt}}">\n										April 1, 2014\n									</time>\n								</span>\n								<span class="body">\n									{{chatMessage.body}}\n								</span>\n							</div>\n						</li>\n					</ul>\n				</div>\n			</div>\n		<!-- END PORTLET-->\n		</div>\n	</div>\n	<div class="col-md-6">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-user font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_VISITOR\' | translate }}:</a> </span>\n					<span class="caption-helper">{{chatRoom.ChatVisitor.fullname}}</span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.fullname">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_FULLNAME\' | translate}}\n					</div>\n					<div class="col-md-8 value">\n						{{chatRoom.ChatVisitor.fullname}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.email">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_EMAIL\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.email}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.remote_address">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.remote_address}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.referer">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REFERER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.referer}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.browser">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_BROWSER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.browser}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.engine">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ENGINE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.engine}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.os">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_OS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.os}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.device">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_DEVICE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.device}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.country">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_COUNTRY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.country}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.region">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REGION\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.region}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.city">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_CITY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.city}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.latitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LATITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.latitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.longitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LONGITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.longitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.createdAt">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						<time is="relative-time" datetime="{{chatRoom.ChatVisitor.createdAt}}">\n							April 1, 2014\n						</time>\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered" data-ng-repeat="user in chatRoom.Users">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-earphones-alt font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AGENT\' | translate }}:</a> </span>\n					<span class="caption-helper">{{user.fullname}}</span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row static-info">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_FULLNAME\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{user.fullname}}\n					</div>\n				</div>\n				<div class="row static-info">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_USERNAME\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{user.name}}\n					</div>\n				</div>\n				<div class="row static-info">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ROLE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{user.role | uppercase}}\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/chat/statistic/statistic.enquiry.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="col-md-12">\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-question font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_ENQUIRIES\' | translate }}</a> </span>\n			</div>\n			<div class="actions">\n				<a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedChatEnquiries" filename="enquiries.csv">\n				<i class="icon-cloud-download"></i></a>\n				<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<!-- START TABLE -->\n			<table st-table="displayedChatEnquiries" st-safe-src="chatEnquiries" class="table table-bordered table-hover">\n				<div class="table-responsive">\n					<thead>\n						<tr>\n							<th colspan="9">\n								<div class="row">\n									<div class="col-md-6">\n										<select class="form-control input-small select2me" data-ng-model="conf.chatEnquiriesByPage">\n											<option value="10">10</option>\n											<option value="25">25</option>\n											<option value="50">50</option>\n											<option value="{{chatEnquiries.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n										</select>\n									</div>\n									<div class="col-md-6">\n										<div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search"/>\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div>\n									</div>\n								</div>\n							</th>\n						</tr>\n						<tr>\n							<th st-sort="type">{{ \'APPLICATION_USERNAME\' | translate }}</th>\n							<th st-sort="users">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n							<th st-sort="createdAt">{{ \'APPLICATION_TIME\' | translate }}</th>\n						</tr>\n					</thead>\n					<tbody>\n						<tr data-ng-repeat="chatEnquiry in displayedChatEnquiries" data-ng-click="$location.path(\'/chat/statistics/enquiry/\' + chatEnquiry.id)">\n							<td style="text-align: center;">{{chatEnquiry.username}}</td>\n							<td style="text-align: center;">{{chatEnquiry.email}}</td>\n							<td style="text-align: center;">\n								<time is="relative-time" datetime="{{chatEnquiry.createdAt}}">\n									April 1, 2014\n								</time>\n							</td>\n						</tr>\n					</tbody>\n					<tfoot>\n						<tr>\n							<td colspan="9" class="text-center">\n								<div st-pagination class="pagination" st-items-by-page="conf.chatEnquiriesByPage" st-displayed-pages="7"></div>\n							</td>\n						</tr>\n					</tfoot>\n			</div>\n			</table>\n			<!-- END TABLE -->\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.enquiry.view.html",'<!-- BEGIN PAGE CONTENT-->\n<div data-ng-init="initEnquiryView()">\n	<div class="col-md-6">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-book-open font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TEXT\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="chatEnquiry" filename="chatEnquery.csv">\n					<i class="icon-cloud-download"></i></a>\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- BEGIN PAGE CONTENT-->\n				<div class="note note-warning">\n					<h4 class="block">{{chatEnquiry.ChatVisitor.fullname}} -\n						<time is="relative-time" datetime="{{chatEnquiry.createdAt}}">\n							April 1, 2014\n						</time>\n					</h4>\n					<p>\n						 {{chatEnquiry.text}}\n					</p>\n				</div>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n	<div class="col-md-6">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-user font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_VISITOR\' | translate }}:</a> </span>\n					<span class="caption-helper">{{chatEnquiry.ChatVisitor.fullname}}</span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.fullname">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_FULLNAME\' | translate}}\n					</div>\n					<div class="col-md-8 value">\n						{{chatEnquiry.ChatVisitor.fullname}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.email">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_EMAIL\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.email}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.remote_address">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.remote_address}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.referer">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REFERER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.referer}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.browser">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_BROWSER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.browser}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.engine">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ENGINE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.engine}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.os">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_OS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.os}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.device">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_DEVICE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.device}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.country">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_COUNTRY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.country}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.region">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REGION\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.region}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.city">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_CITY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.city}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.latitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LATITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.latitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.longitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LONGITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.longitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.createdAt">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						<time is="relative-time" datetime="{{chatEnquiry.ChatVisitor.createdAt}}">\n							April 1, 2014\n						</time>\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-bubble"></i>\n					<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-eyeglass"></i>\n					<a href="/chat/statistics">{{ \'APPLICATION_STATISTICS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img src="assets/images/media/statistics.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<!-- <div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{chatWebsite.name}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{chatWebsite.address}}\n					</div>\n				</div> -->\n				<!-- END SIDEBAR USER TITLE -->\n				<!-- SIDEBAR BUTTONS -->\n				<!-- <div class="profile-userbuttons">\n					<button type="button" class="btn btn-circle green-haze btn-sm">Follow</button>\n					<button type="button" class="btn btn-circle btn-danger btn-sm">Message</button>\n				</div> -->\n				<!-- END SIDEBAR BUTTONS -->\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.chat.statistics.summary\')}">\n							<a ng-href="/chat/statistics/summary">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_SUMMARY\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.chat.statistics.enquiry\') || $state.is(\'main.chat.statistics.enquiries\')}">\n							<a ng-href="/chat/statistics/enquiries">\n							<i class="icon-question"></i>\n							{{ \'APPLICATION_ENQUIRIES\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.chat.statistics.conversation\') || $state.is(\'main.chat.statistics.conversations\')}">\n							<a ng-href="/chat/statistics/conversations">\n							<i class="icon-notebook"></i>\n							{{ \'APPLICATION_CONVERSATIONS\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.chat.statistics.visitor\') || $state.is(\'main.chat.statistics.visitors\')}">\n							<a ng-href="/chat/statistics/visitors">\n							<i class="icon-users"></i>\n							{{ \'APPLICATION_VISITORS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.summary.html",'<div class="col-md-12">\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered" data-ng-show="online">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-notebook font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_LOCATIONS\' | translate }}</a> </span>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<map center="0, 0" zoom="2">\n				<marker data-ng-show="chatVisitor.latitude && chatVisitor.longitude" data-ng-repeat="chatVisitor in chatVisitors" position="{{chatVisitor.latitude}}, {{chatVisitor.longitude}}" title="{{chatVisitor.fullname}}"></marker>\n			</map>\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n\n\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-notebook font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_CONVERSATIONS\' | translate }}</a> </span>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<div class="row">\n				<div class="col-md-6">\n					<div class="portlet sale-summary">\n						<div class="portlet-body">\n							<ul class="list-unstyled">\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_OPENED\' | translate }} <i class="fa fa-img-up"></i>\n									</span>\n									<span class="sale-num">\n									{{ (chatRooms | filter:{ status:\'open\' }).length }} </span>\n								</li>\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_CLOSED\' | translate }} <i class="fa fa-img-down"></i>\n									</span>\n									<span class="sale-num">\n									{{ (chatRooms | filter:{ status:\'close\' }).length }} </span>\n								</li>\n							</ul>\n						</div>\n					</div>\n				</div>\n				<div class="col-md-6">\n					<canvas class="chart chart-pie" data="[(chatRooms | filter:{ status:\'open\' }).length, (chatRooms | filter:{ status:\'close\' }).length]" labels="[$translate.instant(\'APPLICATION_OPENED\'), $translate.instant(\'APPLICATION_CLOSED\')]" legend="true"></canvas>\n				</div>\n			</div>\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-users font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<div class="row">\n				<div class="col-md-6">\n					<div class="portlet sale-summary">\n						<div class="portlet-body">\n							<ul class="list-unstyled">\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_PENDING\' | translate }} <i class="fa fa-img-up"></i>\n									</span>\n									<span class="sale-num">\n									{{ (chatVisitors | filter:{ status:\'pending\' }).length }} </span>\n								</li>\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_SERVED\' | translate }} <i class="fa fa-img-down"></i>\n									</span>\n									<span class="sale-num">\n									{{ (chatVisitors | filter:{ status:\'served\' }:true).length }} </span>\n								</li>\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_UNSERVED\' | translate }} </span>\n									<span class="sale-num">\n									{{ (chatVisitors | filter:{ status:\'unserved\' }).length }} </span>\n								</li>\n							</ul>\n						</div>\n					</div>\n				</div>\n				<div class="col-md-6">\n					<canvas class="chart chart-pie" data="[(chatVisitors | filter:{ status:\'pending\' }).length, (chatVisitors | filter:{ status:\'served\' }:true).length, (chatVisitors | filter:{ status:\'unserved\' }).length]" labels="[$translate.instant(\'APPLICATION_PENDING\'), $translate.instant(\'APPLICATION_SERVED\'), $translate.instant(\'APPLICATION_UNSERVED\')]" legend="true"></canvas>\n				</div>\n			</div>\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-question font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_ENQUIRIES\' | translate }}</a> </span>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<div class="row">\n				<div class="col-md-6">\n					<div class="portlet sale-summary">\n						<div class="portlet-body">\n							<ul class="list-unstyled">\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_READ\' | translate }}<i class="fa fa-img-up"></i>\n									</span>\n									<span class="sale-num">\n									{{(chatEnquiries | filter:{ read:true }).length}} </span>\n								</li>\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_UNREAD\' | translate }}<i class="fa fa-img-down"></i>\n									</span>\n									<span class="sale-num">\n									{{(chatEnquiries | filter:{ read:false }).length}} </span>\n								</li>\n							</ul>\n						</div>\n					</div>\n				</div>\n				<div class="col-md-6">\n					<canvas class="chart chart-pie" data="[(chatEnquiries | filter:{ read:true }).length, (chatEnquiries | filter:{ read:false }).length]" labels="[$translate.instant(\'APPLICATION_READ\'), $translate.instant(\'APPLICATION_UNREAD\')]" legend="true" ng-show="true"></canvas>\n				</div>\n			</div>\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n</div>\n'),a.put("app/chat/statistic/statistic.visitor.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="col-md-12">\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-users font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n			</div>\n			<div class="actions">\n				<a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedChatVisitors" filename="visitors.csv">\n				<i class="icon-cloud-download"></i></a>\n				<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<!-- START TABLE -->\n			<table st-table="displayedChatVisitors" st-safe-src="chatVisitors" class="table table-bordered table-hover">\n				<div class="table-responsive">\n					<thead>\n						<tr>\n							<th colspan="9">\n								<div class="row">\n									<div class="col-md-6">\n										<select class="form-control input-small select2me" data-ng-model="conf.chatVisitorsByPage">\n											<option value="10">10</option>\n											<option value="25">25</option>\n											<option value="50">50</option>\n											<option value="{{chatVisitors.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n										</select>\n									</div>\n									<div class="col-md-6">\n										<div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div>\n									</div>\n								</div>\n							</th>\n						</tr>\n						<tr>\n							<th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n							<th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n							<th st-sort="remote_address">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n							<th st-sort="referer">{{ \'APPLICATION_ORIGIN\' | translate }}</th>\n							<th st-sort="device">{{ \'APPLICATION_DEVICE\' | translate }}</th>\n							<th st-sort="browser">{{ \'APPLICATION_BROWSER\' | translate }}</th>\n							<th st-sort="visitor_language">{{ \'APPLICATION_LANGUAGES\' | translate }}</th>\n							<th st-sort="status">{{ \'APPLICATION_STATUS\' | translate }}</th>\n							<th st-sort="createdAt">{{ \'APPLICATION_TIME\' | translate }}</th>\n						</tr>\n					</thead>\n					<tbody>\n						<tr data-ng-repeat="chatVisitor in displayedChatVisitors" data-ng-click="$location.path(\'/chat/statistics/visitor/\' + chatVisitor.id)">\n							<td>{{chatVisitor.fullname}}</td>\n							<td>{{chatVisitor.email}}</td>\n							<td>{{chatVisitor.remote_address}}</td>\n							<td>{{chatVisitor.referer}}</td>\n							<td class="centered-td">{{chatVisitor.device ? chatVisitor.device : \'--\'}}</td>\n							<td class="centered-td">\n								<img data-ng-show="chatVisitor.browser.includes(\'Chrome\')" data-ng-src="assets/images/browsers/chrome/chrome_16x16.png" data-title="{{chatVisitor.browser}}" bs-tooltip>\n								<img data-ng-show="chatVisitor.browser.includes(\'Safari\')" data-ng-src="assets/images/browsers/safari/safari_16x16.png">\n								<img data-ng-show="chatVisitor.browser.includes(\'Firefox\')" data-ng-src="assets/images/browsers/firefox/firefox_16x16.png">\n								<img data-ng-show="chatVisitor.browser.includes(\'Explorer\')" data-ng-src="assets/images/browsers/internet-explorer/internet-explorer_16x16.png">\n							</td>\n							<td class="centered-td">\n								<img data-ng-show="chatVisitor.visitor_language.includes(\'IT\') || chatVisitor.visitor_language.includes(\'it\')" data-ng-src="assets/images/flags/it.png">\n								<img data-ng-show="chatVisitor.visitor_language.includes(\'US\') || chatVisitor.visitor_language.includes(\'us\')" data-ng-src="assets/images/flags/us.png">\n								<img data-ng-show="chatVisitor.visitor_language.includes(\'EN\') || chatVisitor.visitor_language.includes(\'en\')" data-ng-src="assets/images/flags/en_EN.png">\n							</td>\n							<td class="centered-td">\n								<span class="label label-sm label-success" data-ng-class="{\'label-warning\': chatVisitor.status == \'pending\', \'label-danger\': chatVisitor.status == \'unserved\'}">\n									{{ $translate.instant(\'APPLICATION_\' + $filter(\'uppercase\')(chatVisitor.status)) }}\n								</span>\n							</td>\n							<td style="text-align: center;">\n								<time is="relative-time" datetime="{{chatVisitor.createdAt}}">\n									April 1, 2014\n								</time>\n							</td>\n						</tr>\n					</tbody>\n					<tfoot>\n						<tr>\n							<td colspan="9" class="text-center">\n								<div st-pagination class="pagination" st-items-by-page="conf.chatVisitorsByPage" st-displayed-pages="7"></div>\n							</td>\n						</tr>\n					</tfoot>\n			</div>\n			</table>\n			<!-- END TABLE -->\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.visitor.view.html",'<!-- BEGIN PAGE CONTENT-->\n<div data-ng-init="initVisitorView()">\n	<div class="col-md-6">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-pin font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_LOCATION\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- BEGIN PAGE CONTENT-->\n				<map center="{{chatVisitor.latitude}}, {{chatVisitor.longitude}}" zoom="8">\n					<marker position="{{chatVisitor.latitude}}, {{chatVisitor.longitude}}" title="{{chatVisitor.fullname}}"></marker>\n				</map>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n	<div class="col-md-6">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-user font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_VISITOR\' | translate }}:</a> </span>\n					<span class="caption-helper">{{chatVisitor.fullname}}</span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row static-info" data-ng-show="chatVisitor.longitude && chatVisitor.latitude">\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.fullname">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_FULLNAME\' | translate}}\n					</div>\n					<div class="col-md-8 value">\n						{{chatVisitor.fullname}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.email">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_EMAIL\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.email}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.remote_address">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.remote_address}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.referer">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REFERER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.referer}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.browser">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_BROWSER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.browser}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.engine">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ENGINE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.engine}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.os">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_OS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.os}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.device">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_DEVICE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.device}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.country">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_COUNTRY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.country}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.region">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REGION\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.region}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.city">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_CITY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.city}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.latitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LATITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.latitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.longitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LONGITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.longitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.createdAt">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						<time is="relative-time" datetime="{{chatVisitor.createdAt}}">\n							April 1, 2014\n						</time>\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/timeline/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-list"></i>\n						<a href="/mail/timeline/list"> Timeline</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n	<div class="col-md-12">\n    <h3 class="page-title">\n				Timeline\n			</h3>\n			<!-- END PAGE HEADER-->\n			<!-- BEGIN PAGE CONTENT-->\n			<div class="timeline">\n				<!-- TIMELINE ITEM -->\n				<div class="timeline-item" data-ng-repeat="event in events | orderBy:\'-id\'"  ng-animate=" \'animate\' ">\n					<div class="timeline-badge">\n						<div class="timeline-icon">\n							<i class="icon-envelope font-green-haze"></i>\n						</div>\n					</div>\n					<div class="timeline-body">\n						<div class="timeline-body-arrow"></div>\n						<div class="timeline-body-head">\n							<div class="timeline-body-head-caption">\n								<span class="timeline-body-alerttitle" data-ng-class="{\'font-red\': event.name == \'INCOMING\', \'font-blue\': event.name == \'ATTEMPT\', \'font-green\': event.name == \'TAKEN\'}">{{event.name | uppercase}}</span>\n								<span class="timeline-body-time font-grey-cascade">at {{event.createdAt | date:\'yyyy-MM-dd HH:mm:ss\'}}</span>\n							</div>\n							<div class="timeline-body-head-actions">\n								<div class="btn-group">\n									<a class="btn btn-circle btn-sm dropdown-toggle btn-success" href="/mail/inbox/room/{{event.MailRoomId}}">Go To Mail</a>\n								</div>\n							</div>\n						</div>\n						<div class="timeline-body-content">\n							<span class="font-grey-cascade" data-ng-show="event.User">\n							{{event.MailRoom.subject ? event.MailRoom.subject + \' - \' : \'\'}}<a href="/agents/view/{{event.UserId}}/account">{{event.User.fullname}}</a>\n							</span>\n						</div>\n					</div>\n				</div>\n				<!-- END TIMELINE ITEM -->\n			</div>\n			<!-- END PAGE CONTENT-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-bubble"></i>\n						<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-globe"></i>\n						<a href="/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_WEB_SITES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="chatWebsites.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_WEB_SITE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<!-- <li>\n								<a href="#" data-ng-click="open()">\n								<i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n							</li> -->\n							<li>\n								<a href="/chat/websites/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n							<!-- <li>\n								<a href="#">\n								<i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n							</li> -->\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getChatWebsites([\'name\', \'address\', \'description\', \'remote\'])" csv-header="[\'Name\', \'Address\', \'Description\', \'Remote\']" field-separator=";" filename="chat_websites.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedChatWebsites" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.chatWebsitesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="chatWebsiteByPage in chatWebsitesByPage | filter: $select.search">\n													<div ng-bind-html="chatWebsiteByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n						    <th st-sort="address">{{ \'APPLICATION_WEB_ADDRESS\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="chatWebsite in displayedChatWebsites" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="chatWebsites.checked" checklist-value="chatWebsite.id"></td>\n					      <td>{{chatWebsite.name}}</td>\n								<td>{{chatWebsite.description}}</td>\n					      <td><a ng-href="{{chatWebsite.address}}">{{chatWebsite.address}}</a></td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/chat/websites/view/{{chatWebsite.id}}/snippet/view">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(chatWebsite.name,chatWebsite.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedChatWebsites.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{\'MESSAGE_NO_AVAILABLE_WEBSITES\' | translate}}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="address" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_WEB_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.chatWebsitesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/chat/website/view/action/list/list.html",'<div class="row" data-ng-init="initActons()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/chat/websites/view/{{chatWebsite.id}}/actions/wizard" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACTION\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th class="input-small" align="center">{{\'APPLICATION_APPLICATION\' | translate}}</th>\n								<th class="input-small" align="center">{{\'APPLICATION_TIMEOUT\' | translate}} [s]</th>\n						    <th align="center">{{ \'APPLICATION_INTERVAL\' | translate }}</th>\n								<th class="input-small">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody ui-sortable="sortableOptions" data-ng-model="chatApplications">\n					    <tr data-ng-repeat="application in chatApplications">\n								<td align="center">\n									{{application.User ? \'agent\' : \'queue\' | uppercase}} [{{application.User ? application.User.fullname : application.ChatQueue.name}}]\n								</td>\n								<td align="center">{{application.timeout}}</td>\n								<td align="center">{{application.Interval ? application.Interval.name : application.interval}}</td>\n								<td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/chat/websites/view/{{chatWebsite.id}}/actions/view/{{application.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app, application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="chatApplications.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No applications available</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/chat/website/view/action/view/view.html",'\n<div class="row" data-ng-init="initAction()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-directions font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.settings" ng-submit="updateItem()" novalidate>\n					<!-- START APP -->\n					<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n						<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n						<ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n							<ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n							<ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n								<div ng-bind-html="app.name | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n						<span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END APP -->\n\n					<!-- START HOST -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n						<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n						<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n						<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END HOST -->\n\n					<div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n						<!-- START QUEUE -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n							<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select class="input-medium" data-ng-model="application.ChatQueueId" name="queue" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n								<ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n									<div ng-bind-html="queue.name | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END QUEUE -->\n					</div>\n\n					<div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n						<!-- START AGENT -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$invalid}">\n							<label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n								<ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n									<div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END AGENT -->\n					</div>\n\n					<!-- START INTERVAL_TYPE -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$invalid}">\n						<label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n						<ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n							<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n							<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n								{{ intType.name | translate }}\n							</ui-select-choices>\n						</ui-select>\n						<span data-ng-show="(forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END INTERVAL_TYPE -->\n\n					<div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n						<!-- START TIME -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n							<div class="input-group input-large">\n								<fieldset class="pull-left" ng-disabled="application.alwaysTime">\n									<uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n								</fieldset>\n								<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n								<fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n								<!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n							</div>\n						</div>\n						<!-- END TIME -->\n\n						<!-- START ALWAYS -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n							<div class="input-group input-large">\n								<label class="control-label pointer-cursor">\n									<input\n										bs-switch\n										data-ng-model="application.alwaysTime"\n										type="checkbox"\n										switch-active="{{ isActive }}"\n										switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n										switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n										switch-on-color="{{ onColor }}"\n										switch-off-color="{{ offColor }}"\n										switch-animate="{{ animate }}"\n										switch-size="{{ size }}"\n										switch-label="{{ label }}"\n										switch-icon="{{ icon }}"\n										switch-radio-off="{{ radioOff }}"\n										switch-label-width="{{ labelWidth }}"\n										switch-handle-width="{{ handleWidth }}">\n									<!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n								</label>\n							</div>\n						</div>\n						<!-- END ALWAYS -->\n\n						<!-- START WEEKDAY -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n										{{ weekDay.name | translate}}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n										{{ weekDay.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END WEEKDAY -->\n\n						<!-- START MONTHDAY -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n									<ui-select-match>{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n										{{monthDay}}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n									<ui-select-match>{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n										{{monthDay}}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END MONTHDAY -->\n\n						<!-- START MONTH -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n										{{ month.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n										{{ month.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END MONTH -->\n					</div>\n\n					<div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n						<!-- START INTERVALS -->\n						<div class="form-group inpu" data-ng-class="{\'has-error\': (forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$invalid}">\n							<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n								<ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n									{{ interval.name}}\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END INTERVALS -->\n\n					</div>\n					<button class="btn green-haze" type="submit">{{\'APPLICATION_UPDATE\' | translate}}</button>\n				</form>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/view/action/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-directions font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.action.$valid)">\n						<form name="forms.action" novalidate>\n							<!-- START APP -->\n							<div class="form-group"  data-ng-class="{\'has-error\': forms.action.$submitted && forms.action.app.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n									<ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n										<div ng-bind-html="app.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.action.$submitted && forms.action.app.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END APP -->\n\n							<!-- START HOST -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n								<span data-ng-show="(forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid && forms.action.timeout.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END HOST -->\n\n							<div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n								<!-- START QUEUE -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$invalid}">\n									<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.ChatQueueId" name="queue" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n											<div ng-bind-html="queue.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END QUEUE -->\n							</div>\n\n							<div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n								<!-- START AGENT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$invalid}">\n									<label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n										<ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n											<div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END AGENT -->\n							</div>\n\n							<!-- START INTERVAL_TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n										{{ intType.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="(forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERVAL_TYPE -->\n\n							<div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n								<!-- START TIME -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n									<div class="input-group input-large">\n										<fieldset class="pull-left" ng-disabled="application.alwaysTime">\n											<uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n										</fieldset>\n										<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n										<fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n										<!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n									</div>\n								</div>\n								<!-- END TIME -->\n\n								<!-- START ALWAYS -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n									<div class="input-group input-large">\n										<label class="control-label pointer-cursor">\n											<input\n												bs-switch\n												data-ng-model="application.alwaysTime"\n												type="checkbox"\n												switch-active="{{ isActive }}"\n												switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n												switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n												switch-on-color="{{ onColor }}"\n												switch-off-color="{{ offColor }}"\n												switch-animate="{{ animate }}"\n												switch-size="{{ size }}"\n												switch-label="{{ label }}"\n												switch-icon="{{ icon }}"\n												switch-radio-off="{{ radioOff }}"\n												switch-label-width="{{ labelWidth }}"\n												switch-handle-width="{{ handleWidth }}">\n											<!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n										</label>\n									</div>\n								</div>\n								<!-- END ALWAYS -->\n\n								<!-- START WEEKDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{ weekDay.name | translate}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{ weekDay.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END WEEKDAY -->\n\n								<!-- START MONTHDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTHDAY -->\n\n								<!-- START MONTH -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{ month.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{ month.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTH -->\n							</div>\n\n							<div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n								<!-- START INTERVALS -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n											{{ interval.name}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVALS -->\n\n							</div>\n\n							<input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONTINUE\' | translate}}"/>\n						</form>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<!-- <button class="btn green-haze" type="button" wz-previous><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button> -->\n						<input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/view/snippet/view/view.html",'<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SNIPPET\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_EMBEDDING\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_APPEARANCE\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FORMS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_4" data-toggle="tab">{{\'APPLICATION_LABELS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_5" data-toggle="tab">{{\'APPLICATION_SETTINGS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_6" data-toggle="tab">{{\'APPLICATION_OFFLINE\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="row">\n						<div class="col-md-8">\n							<div class="tab-content">\n								<!-- EMBEDDING TAB -->\n								<div class="tab-pane active" id="tab_1_1">\n									<h3>{{\'APPLICATION_EMBED_SNIPPET\' | translate}}</h3>\n									<p>\n										{{\'MESSAGE_EMBED_SNIPPET\' | translate}}\n									</p>\n									<div class="form-body">\n										<div class="form-group">\n											<div class="col-md-12">\n												<textarea name="snippet" rows="13" style="resize:none;cursor:text;" class="form-control" readonly data-ng-model="snippetCode"></textarea>\n											</div>\n										</div>\n									</div>\n								</div>\n								<!-- END EMBEDDING TAB -->\n\n								<!-- APPEARANCE TAB -->\n								<div class="tab-pane" id="tab_1_2">\n									<form name="forms.formAppearance" data-ng-submit="forms.formAppearance.$valid && updateItem()" novalidate>\n\n										<!-- START MAIN COLOR -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.host.$invalid}">\n											<label class="control-label">{{\'APPLICATION_MAIN_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input colorpicker type="text" name="mainColor" placeholder="{{\'APPLICATION_MAIN_COLOR\' | translate}}" style="color:{{chatWebsite.color}}" class="form-control" data-ng-model="chatWebsite.color" required/>\n											<span data-ng-show="(forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.mainColor.$invalid && forms.formAppearance.mainColor.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END MAIN COLOR -->\n\n										<!-- START FOCUS COLOR -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid}">\n											<label class="control-label">{{\'APPLICATION_FOCUS_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input colorpicker type="text" name="focusColor" placeholder="{{\'APPLICATION_FOCUS_COLOR\' | translate}}" style="color:{{chatWebsite.color_focus}}" class="form-control" data-ng-model="chatWebsite.color_focus" required/>\n											<span data-ng-show="(forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid && forms.formAppearance.focusColor.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END FOCUS COLOR -->\n\n										<!-- START BUTTON COLOR -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid}">\n											<label class="control-label">{{\'APPLICATION_BUTTON_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input colorpicker type="text" name="buttonColor" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" style="color:{{chatWebsite.color_button}}" class="form-control" data-ng-model="chatWebsite.color_button" required/>\n											<span data-ng-show="(forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid && forms.formAppearance.buttonColor.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END BUTTON COLOR -->\n\n										<!-- START HEADER SHAPE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.headerShape.$touched || forms.formAppearance.$submitted) && forms.formAppearance.headerShape.$invalid}">\n											<label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n											<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n											<ui-select data-ng-model="chatWebsite.header_shape" name="headerShape" theme="bootstrap">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}</ui-select-match>\n												<ui-select-choices repeat="headerShape in [\'rounded\',\'squared\'] | filter: $select.search">\n													<div ng-bind-html="$translate.instant(\'APPLICATION_\' + headerShape.toUpperCase()) | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<!-- END HEADER SHAPE -->\n\n										<!-- START ANIMATION TOGGLE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.animationToggle.$touched || forms.formAppearance.$submitted) && forms.formAppearance.animationToggle.$invalid}">\n											<label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n											<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n											<ui-select data-ng-model="chatWebsite.animation" name="animationToggle" theme="bootstrap">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n												<ui-select-choices repeat="animationToggle in [true, false] | filter: $select.search">\n													<div ng-bind-html="animationToggle ? \'On\' : \'Off\' | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<!-- END ANIMATION TOGGLE -->\n\n\n										<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n									</form>\n								</div>\n								<!-- END APPEARANCE TAB -->\n\n								<!-- FORMS TAB -->\n								<div class="tab-pane" id="tab_1_3">\n									<form name="forms.formFunctionality" data-ng-submit="forms.formFunctionality.$valid && updateItem()" novalidate>\n\n										<!-- START DOWNLOAD TRANSCRIPT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formFunctionality.animationToggle.$touched || forms.formFunctionality.$submitted) && forms.formFunctionality.animationToggle.$invalid}">\n											<label class="control-label">{{\'APPLICATION_DOWNLOAD_TRANSCRIPT\' | translate}}</label>\n											<ui-select data-ng-model="chatWebsite.download_transcript" name="downloadTranscript" theme="bootstrap">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n												<ui-select-choices repeat="downloadTranscript in [true, false] | filter: $select.search">\n													<div ng-bind-html="downloadTranscript ? \'On\' : \'Off\' | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<!-- END DOWNLOAD TRANSCRIPT -->\n\n										<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n									</form>\n								</div>\n								<!-- END FORMS TAB -->\n\n								<!-- STRINGS TAB -->\n								<div class="tab-pane" id="tab_1_4">\n									<form name="forms.formLabel" data-ng-submit="forms.formLabel.$valid && updateItem()" novalidate>\n\n										<h4 class="block" data-ng-show="statePreview.state == \'online\'">{{\'APPLICATION_ONLINE_STATE\' | translate}}</h4>\n\n										<!-- START HEADER ONLINE -->\n										<div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.headerOnline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n											<label class="control-label">{{\'APPLICATION_HEADER_ONLINE\' | translate}}</label>\n											<input type="text" name="headerOnline" placeholder="{{\'APPLICATION_HEADER_ONLINE\' | translate}}" class="form-control" data-ng-model="chatWebsite.header_online"/>\n										</div>\n										<!-- END HEADER ONLINE -->\n\n										<!-- START ONLINE MESSAGE-->\n										<div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.onlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n											<label class="control-label">{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}</label>\n											<input type="text" name="onlineMessage" placeholder="{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="chatWebsite.online_message"/>\n										</div>\n										<!-- END HEADER ONLINE -->\n\n										<!-- START USERNAME PLACEHOLDER -->\n										<div class="form-group" data-ng-show="statePreview.state == \'online\' || statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.usernamePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.usernamePlaceholder.$invalid}">\n											<label class="control-label">{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}</label>\n											<input type="text" name="usernamePlaceholder" placeholder="{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.username_placeholder"/>\n										</div>\n										<!-- END USERNAME PLACEHOLDER -->\n\n										<!-- START EMAIL PLACEHOLDER -->\n										<div class="form-group" data-ng-show="statePreview.state == \'online\' || statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.emailPlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.emailPlaceholder.$invalid}">\n											<label class="control-label">{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}</label>\n											<input type="text" name="emailPlaceholder" placeholder="{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.email_placeholder"/>\n										</div>\n										<!-- END EMAIL PLACEHOLDER -->\n\n										<!-- START START CHAT BUTTON -->\n										<div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.startChatButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n											<label class="control-label">{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}</label>\n											<input type="text" name="startChatButton" placeholder="{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.start_chat_button"/>\n										</div>\n										<!-- END START CHAT BUTTON -->\n\n										<h4 class="block" data-ng-show="statePreview.state == \'offline\'">{{\'APPLICATION_OFFLINE_STATE\' | translate}}</h4>\n\n										<!-- START HEADER OFFLINE -->\n										<div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.headerOffline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n											<label class="control-label">{{\'APPLICATION_HEADER_OFFLINE\' | translate}}</label>\n											<input type="text" name="headerOffline" placeholder="{{\'APPLICATION_HEADER_OFFLINE\' | translate}}" class="form-control" data-ng-model="chatWebsite.header_offline"/>\n										</div>\n										<!-- END HEADER OFFLINE -->\n\n										<!-- START OFFLINE MESSAGE-->\n										<div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.offlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n											<label class="control-label">{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}</label>\n											<input type="text" name="offlineMessage" placeholder="{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="chatWebsite.offline_message"/>\n										</div>\n										<!-- END OFFLINE MESSAGE -->\n\n										<!-- START ENQUIRY MESSAGE PLACEHOLDER-->\n										<div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.enquiryMessagePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n											<label class="control-label">{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}</label>\n											<input type="text" name="enquiryMessagePlaceholder" placeholder="{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_message_placeholder"/>\n										</div>\n										<!-- END ENQUIRY MESSAGE PLACEHOLDER -->\n\n										<!-- START ENQUIRY BUTTON -->\n										<div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.enquiryButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n											<label class="control-label">{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}</label>\n											<input type="text" name="enquiryButton" placeholder="{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_button"/>\n										</div>\n										<!-- END ENQUIRY BUTTON -->\n\n										<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n									</form>\n								</div>\n								<!-- END STRINGS TAB -->\n\n								<!-- SETTINGS TAB -->\n								<div class="tab-pane" id="tab_1_5">\n									<form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n\n										<!-- START NAME -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSetting.name.$invalid}">\n											<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="chatWebsite.name" required/>\n											<span data-ng-show="(forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSettings.name.$invalid && forms.formSetting.name.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END NAME -->\n\n										<!-- START ADDRESS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid}">\n											<label class="control-label">{{\'APPLICATION_WEB_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input type="url" name="address" placeholder="{{\'APPLICATION_WEB_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.address" required/>\n											<span data-ng-show="(forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid && forms.formSetting.address.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END ADDRESS -->\n\n										<!-- START REMOTE IP -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid}">\n											<label class="control-label">{{\'APPLICATION_MOTION_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input type="url" name="remote" placeholder="{{\'APPLICATION_MOTION_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.remote" required/>\n											<span data-ng-show="(forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid && forms.formSetting.remote.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END REMOTE IP -->\n\n										<!-- START DESCRIPTION -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.description.$touched || forms.formSetting.$submitted) && forms.formSetting.description.$invalid}">\n											<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n											<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="chatWebsite.description"/>\n										</div>\n										<!-- END DESCRIPTION -->\n\n										<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n									</form>\n								</div>\n								<!-- END SETTINGS TAB -->\n\n								<!-- OFFLINE TAB -->\n								<div class="tab-pane" id="tab_1_6">\n									<form name="forms.formOffline" data-ng-submit="forms.formOffline.$valid && updateItem()" novalidate>\n\n										<!-- START ENQUIRY FORWARDING -->\n										<div class="form-group">\n											<div class="row">\n												<label class="col-md-4">\n													{{\'APPLICATION_ENQUIRY_FORWARDING\' | translate}}\n												</label>\n												<label class="col-md-8">\n													<input type="checkbox" ng-model="chatWebsite.enquiry_forwarding">\n												</label>\n											</div>\n											<div class="row">\n												<span class="help-block col-md-12">\n														{{\'MESSAGE_REMEMBER_SMTP_SERVICE_ACCOUNT\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<!-- END ENQUIRY FORWARDING -->\n\n										<!-- START REMOTE IP -->\n										<div class="form-group" data-ng-if="chatWebsite.enquiry_forwarding" data-ng-class="{\'has-error\': (forms.formOffline.forwardingAddress.$touched || forms.formOffline.$submitted) && forms.formSetting.forwardingAddress.$invalid}">\n											<label class="control-label">{{\'APPLICATION_ENQUIRY_FORWARDING_ADDRESS\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="forwardingAddress" placeholder="{{\'APPLICATION_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_forwarding_address" required/>\n											<span data-ng-show="(forms.formOffline.forwardingAddress.$touched || forms.formOffline.$submitted) && forms.formOffline.forwardingAddress.$invalid && forms.formOffline.forwardingAddress.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END REMOTE IP -->\n\n										<!-- START HEADER SHAPE -->\n										<div class="form-group" data-ng-if="chatWebsite.enquiry_forwarding" data-ng-class="{\'has-error\': (forms.formOffline.OfflineTemplateId.$touched || forms.formOffline.$submitted) && forms.formOffline.OfflineTemplateId.$invalid}">\n											<label class="control-label">{{\'APPLICATION_TEMPLATE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="chatWebsite.OfflineTemplateId" name="OfflineTemplateId" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="mailTemplate.id as mailTemplate in mailTemplates | filter: $select.search">\n													<div ng-bind-html="mailTemplate.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.formOffline.OfflineTemplateId.$touched || forms.formOffline.$submitted) && forms.formOffline.OfflineTemplateId.$invalid && forms.formOffline.OfflineTemplateId.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END HEADER SHAPE -->\n\n										<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n									</form>\n								</div>\n								<!-- END OFFLINE TAB -->\n							</div>\n						</div>\n						<div class="col-md-4">\n							<!-- START STATE -->\n							<div class="form-group">\n								<!-- <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label> -->\n								<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n								<ui-select data-ng-model="statePreview.state" name="statePreview" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="statePreview in [\'online\',\'offline\'] | filter: $select.search">\n										<div ng-bind-html="statePreview | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n							</div>\n							<!-- END STATE -->\n							<preview></preview>\n						</div>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
+a.put("app/chat/website/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-bubble"></i>\n					<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-globe"></i>\n					<a href="/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{chatWebsite.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img src="assets/images/media/website.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{chatWebsite.name}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{chatWebsite.address}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.includes(\'main.chat.websites.view.snippet\')}">\n							<a ng-href="/chat/websites/view/{{chatWebsite.id}}/snippet/view">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SNIPPET\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.includes(\'main.chat.websites.view.actions\')}">\n							<a ng-href="/chat/websites/view/{{chatWebsite.id}}/actions/list">\n							<i class="icon-directions"></i>\n							{{ \'APPLICATION_ACTIONS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-bubble"></i>\n						<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-globe"></i>\n						<a href="/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_WEB_SITE\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_WEB_SITE_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n						<form name="forms.formSetting" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.formSetting.name.$touched && !forms.formSettings.name.$valid && forms.formSetting.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid}">\n								<label class="control-label">{{\'APPLICATION_WEB_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="address" placeholder="{{\'APPLICATION_WEB_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.address" required/>\n								<span data-ng-show="(forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid && forms.formSetting.address.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ADDRESS -->\n\n							<!-- START REMOTE IP -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MOTION_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remote" placeholder="{{\'APPLICATION_MOTION_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remote" required/>\n								<span data-ng-show="(forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid && forms.formSetting.remote.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END REMOTE IP -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.form.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_WEB_SITE_APPEARANCE\' | translate}}" canexit="exitValidation(forms.formAppearance.$valid)">\n						<form name="forms.formAppearance" novalidate>\n\n							<!-- START MAIN COLOR -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.host.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MAIN_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input colorpicker type="text" name="mainColor" placeholder="{{\'APPLICATION_MAIN_COLOR\' | translate}}" style="color:{{item.color}}" class="form-control" data-ng-model="item.color" required/>\n								<span data-ng-show="(forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.mainColor.$invalid && forms.formAppearance.mainColor.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MAIN COLOR -->\n\n							<!-- START FOCUS COLOR -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FOCUS_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input colorpicker type="text" name="focusColor" placeholder="{{\'APPLICATION_FOCUS_COLOR\' | translate}}" style="color:{{item.color_focus}}" class="form-control" data-ng-model="item.color_focus" required/>\n								<span data-ng-show="(forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid && forms.formAppearance.focusColor.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FOCUS COLOR -->\n\n							<!-- START BUTTON COLOR -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid}">\n								<label class="control-label">{{\'APPLICATION_BUTTON_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input colorpicker type="text" name="buttonColor" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" style="color:{{item.color_button}}" class="form-control" data-ng-model="item.color_button" required/>\n								<span data-ng-show="(forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid && forms.formAppearance.buttonColor.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END BUTTON COLOR -->\n\n							<!-- START HEADER SHAPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.headerShape.$touched || forms.formAppearance.$submitted) && forms.formAppearance.headerShape.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HEADER_SHAPE\' | translate}}</label>\n								<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="item.animation" required/> -->\n								<ui-select data-ng-model="item.header_shape" name="headerShape" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}</ui-select-match>\n									<ui-select-choices repeat="headerShape in [\'rounded\',\'squared\'] | filter: $select.search">\n										<div ng-bind-html="$translate.instant(\'APPLICATION_\' + headerShape.toUpperCase()) | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n							</div>\n							<!-- END HEADER SHAPE -->\n\n							<!-- START ANIMATION TOGGLE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.animationToggle.$touched || forms.formAppearance.$submitted) && forms.formAppearance.animationToggle.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n								<ui-select data-ng-model="item.animation" name="animationToggle" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected  ? \'On\' : \'Off\'}}</ui-select-match>\n									<ui-select-choices repeat="filter in [true,false] | filter: $select.search">\n										<div ng-bind-html="filter ? \'On\' : \'Off\' | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n							</div>\n							<!-- END ANIMATION TOGGLE -->\n\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_LABELS\' | translate}}" canexit="exitValidation(forms.formLabel.$valid)">\n						<form name="forms.formLabel" novalidate>\n\n							<!-- START HEADER ONLINE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.headerOnline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HEADER_ONLINE\' | translate}}</label>\n								<input type="text" name="headerOnline" placeholder="{{\'APPLICATION_HEADER_ONLINE\' | translate}}" class="form-control" data-ng-model="item.header_online"/>\n							</div>\n							<!-- END HEADER ONLINE -->\n\n							<!-- START ONLINE MESSAGE-->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.onlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}</label>\n								<input type="text" name="onlineMessage" placeholder="{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="item.online_message"/>\n							</div>\n							<!-- END HEADER ONLINE -->\n\n							<!-- START USERNAME PLACEHOLDER -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.usernamePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.usernamePlaceholder.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}</label>\n								<input type="text" name="usernamePlaceholder" placeholder="{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.username_placeholder"/>\n							</div>\n							<!-- END USERNAME PLACEHOLDER -->\n\n							<!-- START EMAIL PLACEHOLDER -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.emailPlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.emailPlaceholder.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}</label>\n								<input type="text" name="emailPlaceholder" placeholder="{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.email_placeholder"/>\n							</div>\n							<!-- END EMAIL PLACEHOLDER -->\n\n							<!-- START START CHAT BUTTON -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.startChatButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n								<label class="control-label">{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}</label>\n								<input type="text" name="startChatButton" placeholder="{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}" class="form-control" data-ng-model="item.start_chat_button"/>\n							</div>\n							<!-- END START CHAT BUTTON -->\n\n							<!-- START HEADER OFFLINE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.headerOffline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HEADER_OFFLINE\' | translate}}</label>\n								<input type="text" name="headerOffline" placeholder="{{\'APPLICATION_HEADER_OFFLINE\' | translate}}" class="form-control" data-ng-model="item.header_offline"/>\n							</div>\n							<!-- END HEADER OFFLINE -->\n\n							<!-- START OFFLINE MESSAGE-->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.offlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n								<label class="control-label">{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}</label>\n								<input type="text" name="offlineMessage" placeholder="{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="item.offline_message"/>\n							</div>\n							<!-- END OFFLINE MESSAGE -->\n\n							<!-- START ENQUIRY MESSAGE PLACEHOLDER-->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.enquiryMessagePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}</label>\n								<input type="text" name="enquiryMessagePlaceholder" placeholder="{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.enquiry_message_placeholder"/>\n							</div>\n							<!-- END ENQUIRY MESSAGE PLACEHOLDER -->\n\n							<!-- START ENQUIRY BUTTON -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.enquiryButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}</label>\n								<input type="text" name="enquiryButton" placeholder="{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}" class="form-control" data-ng-model="item.enquiry_button"/>\n							</div>\n							<!-- END ENQUIRY BUTTON -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_FORMS\' | translate}}" canexit="exitValidation(forms.formAppearance.$valid)">\n						<form name="forms.formFunctionality" novalidate>\n\n							<!-- START DOWNLOAD TRANSCRIPT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formFunctionality.animationToggle.$touched || forms.formFunctionality.$submitted) && forms.formFunctionality.animationToggle.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DOWNLOAD_TRANSCRIPT\' | translate}}</label>\n								<ui-select data-ng-model="item.download_transcript" name="downloadTranscript" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n									<ui-select-choices repeat="downloadTranscript in [true, false] | filter: $select.search">\n										<div ng-bind-html="downloadTranscript ? \'On\' : \'Off\' | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n							</div>\n							<!-- END DOWNLOAD TRANSCRIPT -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/company/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_COMPANY\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.company" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.company.name.$touched || forms.company.$submitted) && forms.company.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.cmopany.name.$touched || forms.company.$submitted) && forms.company.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.company.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/contactmanager/company/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-briefcase"></i>\n					<a href="/contactmanager/companies/list">{{ \'APPLICATION_COMPANIES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-briefcase font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_COMPANIES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Companies.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<button class="btn green-jungle " ng-click="create()">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_COMPANY\' | translate }}\n						</button>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getCompanies([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="companies.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedCompanies" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.companiesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="companyByPage in companiesByPage | filter: $select.search">\n													<div ng-bind-html="companyByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(company, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="company in displayedCompanies" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="Companies.checked" checklist-value="company.id"></td>\n								<td>{{company.name}}</td>\n					      <td>{{company.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/contactmanager/companies/view/{{company.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(company.name,company.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedCompanies.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_COMPANIES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.companiesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/company/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getCompany()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-briefcase"></i>\n					<a href="/contactmanager/companies/list">{{ \'APPLICATION_COMPANIES\' | translate }}</a>\n					<i data-ng-show="company" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="company">\n					<a href="#">{{company.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/company.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{company.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.contactmanager.companies.view.settings\')}">\n							<a data-ng-href="/contactmanager/companies/view/{{company.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/company/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_COMPANY\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_ADDRESS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_SHIPMENT_ADDRESS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateCompany()" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="company.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="company.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<!-- START STREET -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$invalid}">\n							<label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n							<input type="text" name="street" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="company.street"/>\n							<span data-ng-show="(forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END STREET -->\n\n						<!-- START POSTALCODE -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$invalid}">\n							<label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n							<input type="text" name="postalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="company.postalCode"/>\n							<span data-ng-show="(forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END POSTALCODE -->\n\n						<!-- START CITY -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$invalid}">\n							<label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n							<input type="text" name="city" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="company.city"/>\n							<span data-ng-show="(forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END CITY -->\n						<!-- START COUNTRY -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$invalid}">\n							<label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n							<input type="text" name="country" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="company.country"/>\n							<span data-ng-show="(forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END COUNTRY -->\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n					</div>\n					<div class="tab-pane" id="tab_1_3">\n						<!-- START STREET -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.sStreet.$touched || forms.general.$submitted) && forms.general.sStreet.$invalid}">\n							<label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n							<input type="text" name="sStreet" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="company.sStreet"/>\n							<span data-ng-show="(forms.general.sStreet.$touched || forms.general.$submitted) && forms.general.sStreet.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END STREET -->\n\n						<!-- START POSTALCODE -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.sPostalCode.$touched || forms.general.$submitted) && forms.general.sPostalCode.$invalid}">\n							<label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n							<input type="text" name="sPostalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="company.sPostalCode"/>\n							<span data-ng-show="(forms.general.sPostalCode.$touched || forms.general.$submitted) && forms.general.sPostalCode.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END POSTALCODE -->\n\n						<!-- START CITY -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.sCity.$touched || forms.general.$submitted) && forms.general.sCity.$invalid}">\n							<label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n							<input type="text" name="sCity" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="company.sCity"/>\n							<span data-ng-show="(forms.general.sCity.$touched || forms.general.$submitted) && forms.general.sCity.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END CITY -->\n						<!-- START COUNTRY -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.sCountry.$touched || forms.general.$submitted) && forms.general.sCountry.$invalid}">\n							<label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n							<input type="text" name="sCountry" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="company.sCountry"/>\n							<span data-ng-show="(forms.general.sCountry.$touched || forms.general.$submitted) && forms.general.sCountry.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END COUNTRY -->\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n					</div>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
+a.put("app/contactmanager/contact/list/import.modal.html",'<div class="modal-header" data-ng-init="getCustomFields();">\n  <h3 class="modal-title">{{ \'APPLICATION_IMPORT_FROM_CSV\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.csv" novalidate>\n    <div class="row">\n      <div class="col-md-6">\n    <!-- START FULLNAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.fullname.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}</label>\n      <ui-select data-ng-model="item.fullname" theme="bootstrap" name="fullname" data-ng-disabled="disabled" required>\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_FULLNAME\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.fullname.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END FULLNAME -->\n\n    <!-- START STREET -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.street.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n      <ui-select data-ng-model="item.street" theme="bootstrap" name="street" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_STREET\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.street.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END STREET -->\n\n    <!-- START POSTALCODE -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.postalCode.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n      <ui-select data-ng-model="item.postalCode" theme="bootstrap" name="postalCode" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_POSTALCODE\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.postalCode.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END POSTALCODE -->\n\n    <!-- START CITY -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.city.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n      <ui-select data-ng-model="item.city" theme="bootstrap" name="city" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_CITY\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.city.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END CITY -->\n\n    <!-- START PHONES -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.Phones.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_PHONES\' | translate}}</label>\n      <ui-select multiple data-ng-model="item.Phones" theme="bootstrap" name="Phones" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_PHONES\' | translate }}">{{$item}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.Phones.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END PHONES -->\n\n  </div>\n  <div class="col-md-6">\n\n    <!-- START COUNTRY -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.country.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n      <ui-select data-ng-model="item.country" theme="bootstrap" name="country" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_COUNTRY\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.country.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END COUNTRY -->\n\n    <!-- START DATEOFBIRTH -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.dateOfBirth.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_DATEOFBIRTH\' | translate}}</label>\n      <ui-select data-ng-model="item.dateOfBirth" theme="bootstrap" name="dateOfBirth" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_DATEOFBIRTH\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.dateOfBirth.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END DATEOFBIRTH -->\n\n    <!-- START TAGS -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.tags.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_TAGS\' | translate}}</label>\n      <ui-select multiple data-ng-model="item.tags" theme="bootstrap" name="tags" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_TAGS\' | translate }}">{{$item}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.tags.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TAGS -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.description.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <ui-select data-ng-model="item.description" theme="bootstrap" name="description" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_DESCRIPTION\' | translate }}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.description.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END DESCRIPTION -->\n\n    <!-- START EMAILS -->\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv.Emails.$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{\'APPLICATION_EMAILS\' | translate}}</label>\n      <ui-select multiple data-ng-model="item.Emails" theme="bootstrap" name="Emails" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_EMAILS\' | translate }}">{{$item}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv.Emails.$invalid && forms.csv.$touched" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END EMAILS -->\n\n  </div>\n  </div>\n\n  <!-- START CUSTOMFIELDS -->\n  <div data-ng-repeat="customField in customFields">\n    <div class="form-group" data-ng-class="{\'has-error\': forms.csv[customField.name].$invalid && forms.csv.$submitted}">\n      <label class="control-label">{{customField.name}}</label>\n      <ui-select data-ng-if="!joinPrompt" data-ng-model="item.customFields[customField.id]" theme="bootstrap" name="{{customField.name}}" data-ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{customField.name}}">{{$select.selected}}</ui-select-match>\n        <ui-select-choices repeat="index in indexes | filter: $select.search">\n          <div ng-bind-html="index | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.csv[customField.name].$invalid && forms.csv.$submitted" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n  </div>\n  <!-- END CUSTOMFIELDS -->\n\n  <div>\n    <p>{{\'APPLICATION_IMPORT_SUCCEEDED\' | translate}}: {{import.succeeded}}/{{csvLength}}</p>\n    <div class="progress progress-sm" style="">\n      <div class="progress-bar progress-bar-info" role="progressbar" ng-style="{ \'width\': import.success + \'%\' }"></div>\n    </div>\n  </div>\n  <div>\n    <p>{{\'APPLICATION_IMPORT_FAILED\' | translate}}: {{import.failed}}/{{csvLength}}</p>\n    <div class="progress progress-sm" style="">\n      <div class="progress-bar progress-bar-info" role="progressbar" ng-style="{ \'width\': import.fail + \'%\' }"></div>\n    </div>\n  </div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="start()" ng-disabled="forms.csv.$invalid || !forms.csv.fullname || submitted">{{ \'APPLICATION_SUBMIT\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="close()" data-ng-if="!importing">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="stop()" data-ng-if="importing">{{ \'APPLICATION_STOP\' | translate }}</button>\n</div>\n'),a.put("app/contactmanager/contact/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="fa fa-users"></i>\n					<a href="/contactmanager/contacts/list">{{ \'APPLICATION_CONTACT_MANAGER\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="fa fa-users font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CONTACTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="contacts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<button class="btn green-jungle" data-ng-click="newContact();">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONTACT\' | translate }}\n						</button>\n						<span class="btn default btn-file">\n						<span class="fileinput-new">\n						<i class="icon-cloud-upload"></i> {{\'APPLICATION_IMPORT_FROM_CSV\' | translate}}</span>\n						<input type="file" nv-file-select="" uploader="uploader"/>\n						</span>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getContacts([\'mailbox\', \'fullname\', \'email\'])" csv-header="[\'name\', \'surname\', \'description\']" field-separator=";" filename="contacts.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedContacts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.contactsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="contactByPage in contactsByPage | filter: $select.search">\n													<div ng-bind-html="contactByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(contact, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="fullname">{{ \'APPLICATION_FULLNAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="contact in displayedContacts" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="contacts.checked" checklist-value="contact.id"></td>\n								<td>{{contact.fullname}} {{}}</td>\n					      <td>{{contact.description}}</td>\n					      <td>\n					        <button class="btn default btn-xs blue-stripe" data-ng-click="openContactTab(contact)">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </button>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(contact.fullname,contact.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedContacts.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_CONTACTS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="fullname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FULLNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.contactsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/customfield/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_CUSTOM_FIELD\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.customField" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.customField.name.$touched || forms.customField.$submitted) && forms.customField.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.customField.name.$touched || forms.customField.$submitted) && forms.customField.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START TYPE -->\n    <div class="form-group"  data-ng-class="{\'has-error\': (forms.customField.type.$touched || forms.customField.$submitted) && forms.customField.type.$invalid}">\n      <label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.type" name="type" theme="bootstrap" required>\n        <ui-select-match placeholder="{{ \'APPLICATION_TYPE\' | translate }}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n        <ui-select-choices repeat="type.value as type in types| filter: $select.search">\n          {{$translate.instant(type.name)}}\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(forms.customField.type.$touched || forms.customField.$submitted) && forms.customField.type.$invalid && forms.customField.type.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TYPE -->\n\n    <div ng-slide-down="item.type == \'select\'" lazy-render duration="1">\n      <div>\n        <label class="control-label">{{\'APPLICATION_CHOICES\' | translate}}</label>\n      </div>\n      <div class="padding-bottom" ng-repeat="choice in choices">\n        <div class="form-group">\n          <div class="input-group">\n            <input type="text" class="form-control" ng-model="choice.value" required>\n            <span class="input-group-btn">\n            <button class="btn red" type="button"data-ng-click="removeField($index)" data-ng-disabled="choices.length<=1"><i class="fa fa-times"></i></button>\n            </span>\n          </div>\n        </div>\n      </div>\n      <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField()">\n        <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_CHOICE\' | translate}}\n      </button>\n\n    </div>\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.customField.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/contactmanager/customfield/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-pencil"></i>\n					<a href="/contactmanager/customfields/list">{{ \'APPLICATION_CUSTOM_FIELDS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-pencil font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CUSTOM_FIELDS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="CustomFields.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<button class="btn green-jungle " ng-click="create()">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_CUSTOM_FIELD\' | translate }}\n						</button>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getCs([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="customFields.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedCustomFields" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.customFieldsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="customFieldByPage in customFieldsByPage | filter: $select.search">\n													<div ng-bind-html="customFieldByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(customField, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="type">{{ \'APPLICATION_TYPE\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="customField in displayedCustomFields" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="customFields.checked" checklist-value="customField.id"></td>\n								<td>{{customField.name}}</td>\n								<td>{{customField.type}}</td>\n					      <td>{{customField.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/contactmanager/customfields/view/{{customField.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(customField.name,customField.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedCustomFields.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_CUSTOM_FIELDS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_TYPE\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.customFieldsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/customfield/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getCustomField()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-pencil"></i>\n					<a href="/contactmanager/customfields/list">{{ \'APPLICATION_CUSTOM_FIELDS\' | translate }}</a>\n					<i data-ng-show="customField" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="customField">\n					<a href="#">{{customField.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/customfield.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{customField.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.contactmanager.customfields.view.settings\')}">\n							<a data-ng-href="/contactmanager/customfields/view/{{customField.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/customfield/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CUSTOM_FIELD\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateCustomField()" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="customField.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<div ng-slide-down="customField.type == \'select\'" lazy-render duration="1" class="mbottom20">\n								<div>\n									<label class="control-label">{{\'APPLICATION_CHOICES\' | translate}}</label>\n								</div>\n								<div class="padding-bottom" ng-repeat="choice in choices">\n									<div class="form-group">\n										<div class="input-group">\n											<input type="text" class="form-control" ng-model="choice.value" required>\n											<span class="input-group-btn">\n											<button class="btn red" type="button"data-ng-click="removeField($index)" data-ng-disabled="choices.length<=1"><i class="fa fa-times"></i></button>\n											</span>\n										</div>\n									</div>\n								</div>\n								<button type="button" class="btn btn-sm green padding-bottom" ng-click="addField()">\n									<i class="fa fa-plus"></i> {{\'APPLICATION_ADD_CHOICE\' | translate}}\n								</button>\n\n							</div>\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="customField.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
+a.put("app/dashboard/dashboard.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/dashboard/voice">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<div>\n		    <nav class="navbar navbar-default" role="navigation">\n		        <div class="navbar-header">\n		            <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n		                <span class="sr-only">Toggle navigation</span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		            </button>\n		            <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n		        </div>\n\n		        <!-- Collect the nav links, forms, and other content for toggling -->\n		        <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n		            <ul class="nav navbar-nav">\n									<!-- <li dropdown>\n											<a href="#" dropdown-toggle>\n													{{ \'APPLICATION_VOICE\' | translate }}\n													<b class=\'caret\'></b>\n											</a>\n											<tree tree=\'voice\'></tree>\n									</li>\n									<li dropdown>\n											<a href="#" dropdown-toggle>\n													{{ \'APPLICATION_MAIL\' | translate }}\n													<b class=\'caret\'></b>\n											</a>\n											<tree tree=\'mail\'></tree>\n									</li> -->\n		                <li data-ng-class="{active: $state.is(\'main.dashboard.voice\')}">\n		                    <a href="/dashboard/voice">\n													<b class=\'icon-earphones-alt\'></b>\n		                        {{ \'APPLICATION_VOICE\' | translate }}\n		                    </a>\n		                    <!-- <tree tree=\'voice\'></tree> -->\n		                </li>\n										<li data-ng-class="{active: $state.is(\'main.dashboard.mail\')}">\n		                    <a href="/dashboard/mail">\n													<b class=\'icon-envelope\'></b>\n		                        {{ \'APPLICATION_MAIL\' | translate }}\n		                    </a>\n		                    <!-- <tree tree=\'mail\'></tree> -->\n		                </li>\n		            </ul>\n		            <!-- <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_QUEUES\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'queues\'></tree>\n		                </li>\n		            </ul> -->\n		        </div>\n		        <!-- /.navbar-collapse -->\n		    </nav>\n		</div>\n		<div ui-view></div>\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/dashboard/mail/mail.html",'<div class="col-md-12">\nThis is the mail view.\n</div>\n'),a.put("app/dashboard/voice/voice.html",'<div class="row" ng-init=\'getQueueStats()\'>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat red-intense">\n      <div class="visual">\n        <i class="fa fa-comments"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.abandonedCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_ABANDONED\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat green-haze">\n      <div class="visual">\n        <i class="fa fa-bar-chart-o"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.completedCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_COMPLETED\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat purple-plum">\n      <div class="visual">\n        <i class="fa fa-shopping-cart"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.waitCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_WAIT\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat blue-madison">\n      <div class="visual">\n        <i class="fa fa-globe"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.activeCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_ACTIVE\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n</div>\n'),a.put("app/desk/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-handbag"></i>\n					<a href="/desk/list">{{ \'APPLICATION_DESK_COM\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-handbag font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_DESK_COM\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="accounts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle" href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/desk/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'authType\',\'consumerKey\',\'consumerSecret\',\'token\',\'tokenSecret\',\'password\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Authentication Type\', \'Consumer Key\', \'Consumer Secret\', \'Token\', \'Token Secret\', \'Password\']" field-separator=";" filename="desk_accounts.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedDeskAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n													<div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n								<th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n								<th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="account in displayedDeskAccounts" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n					      <td>{{account.name}}</td>\n					      <td>{{account.username}}</td>\n								<td>{{account.remoteUri}}</td>\n								<td>{{account.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/desk/view/{{account.id}}/account">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n									<a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n										{{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedDeskAccounts.length">\n								<td colspan="7" style="text-align:center;">\n									<i>No account available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="7" class="text-center">\n									<div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n					</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/desk/view/view.account.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n								<span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n								<span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START AUTH TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n								<label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n								<ui-select data-ng-model="account.authType" name="authType" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="type in [\'basic\', \'oauth\'] | filter: $select.search">\n										<div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="account.authType == \'basic\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n								<span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n							<!-- START CONSUMER KEY -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerKey.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_CONSUMER_KEY\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="consumerKey" placeholder="{{\'APPLICATION_CONSUMER_KEY\' | translate}}" class="form-control" data-ng-model="account.consumerKey" required/>\n								<span data-ng-show="forms.formSetting.consumerKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONSUMER KEY -->\n\n              <!-- START CONSUMER SECRET -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerSecret.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_CONSUMER_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="consumerSecret" placeholder="{{\'APPLICATION_CONSUMER_SECRET\' | translate}}" class="form-control" data-ng-model="account.consumerSecret" required/>\n								<span data-ng-show="forms.formSetting.consumerSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONSUMER SECRET -->\n\n              <!-- START TOKEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="token" placeholder="{{\'APPLICATION_TOKEN\' | translate}}" class="form-control" data-ng-model="account.token" required/>\n								<span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TOKEN -->\n\n              <!-- START TOKEN SECRET-->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.tokenSecret.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_TOKEN_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="tokenSecret" placeholder="{{\'APPLICATION_TOKEN_SECRET\' | translate}}" class="form-control" data-ng-model="account.tokenSecret" required/>\n								<span data-ng-show="forms.formSetting.tokenSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TOKEN SECRET-->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/desk/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createConfiguration()">\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n							<form name="formsConfiguration.info" novalidate>\n								<!-- START NAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n									<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n									<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n									<span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END NAME -->\n								<!-- START DESCRIPTION -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n									<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n								</div>\n								<!-- END DESCRIPTION -->\n\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/desk/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n					</li>\n          <li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n					</li>\n          <li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- SUBJECT TAB -->\n					<div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n	            <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n	              <div class="col-md-3">\n	                <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n	                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n	                <div class="form-group">\n	                  <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n	                </div>\n	              </div>\n	              <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n	                <div class="form-group">\n	                  <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n					<div class="tab-pane ui-padding" id="tab_1_2">\n						<div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n							<div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n								<!-- <pre>\n									{{descriptionItem|json}}\n								</pre> -->\n	              <div class="col-md-2">\n	                <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n	                  <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n	                <div class="form-group">\n	                  <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n	                </div>\n	              </div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n									<input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n								</div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n									<ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n	                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n								</div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n									<input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n								</div>\n	              <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n	                <div class="form-group">\n	                  <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n					<div class="tab-pane ui-padding" id="tab_1_3">\n						<div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n	            <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n	              <div class="col-md-3">\n	                <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n	                  <ui-select-choices repeat="item.id as item in accountFields | filter: $select.search">\n	                    <div ng-bind-html="item.label | highlight: $select.search"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n	                <div class="form-group">\n										<ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n		                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected}}</ui-select-match>\n		                  <ui-select-choices repeat="item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n		                    <div ng-bind-html="item | highlight: $select.search"></div>\n		                  </ui-select-choices>\n		                </ui-select>\n	                </div>\n	              </div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n									<div class="form-group">\n										<ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n		                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n		                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n		                    <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n		                  </ui-select-choices>\n		                </ui-select>\n									</div>\n								</div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n	                <div class="form-group">\n										<input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n	                </div>\n	              </div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n	                <div class="form-group">\n										<ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END FIELDS TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
+a.put("app/desk/view/view.configurations.html",'<div ui-view class="profile-content">\n	<div class="row" data-ng-init="getConfigurations()">\n		<div class="col-md-12">\n			<div class="portlet light">\n				<div class="portlet-title  tabbable-line">\n					<div class="caption caption-md">\n						<i class="icon-globe theme-font hide"></i>\n						<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n					</div>\n					<div class="actions">\n						<div class="btn-group">\n							<a class="btn green-jungle " href="/desk/view/{{account.id}}/configuration" data-toggle="dropdown">\n								<i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n							</a>\n						</div>\n					</div>\n				</div>\n				<div class="portlet-body">\n					<!-- START TABLE -->\n					<table class="table table-striped table-bordered table-hover">\n						  <thead>\n							  <tr>\n							    <th>{{\'APPLICATION_NAME\' | translate}}</th>\n									<th>{{\'APPLICATION_DESCRIPTION\' | translate}}</th>\n									<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n							  </tr>\n						  </thead>\n							<tbody>\n						    <tr data-ng-repeat="configuration in configurations">\n									<td>{{configuration.name}}</td>\n									<td>{{configuration.description}}</td>\n						      <td>\n										<a class="btn default btn-xs blue-stripe" data-ng-href="/desk/view/{{account.id}}/configurations/settings/{{configuration.id}}">\n											{{ \'APPLICATION_SETTINGS\' | translate}}\n						        </a>\n						        <a class="btn default btn-xs red-stripe" data-ng-click="deleteConfiguration(configuration.name,configuration.id)">\n											{{ \'APPLICATION_DELETE\' | translate }}\n						        </a>\n						      </td>\n						    </tr>\n								<tr data-ng-hide="configurations.length">\n									<td colspan="5" style="text-align:center;">\n										<i>No configuration available</i>\n									</td>\n								</tr>\n						  </tbody>\n					</table>\n					<!-- END TABLE -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/desk/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n          <i class="icon-handbag"></i>\n          <a href="/desk/list">{{ \'APPLICATION_DESK_COM\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{account.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img src="assets/images/media/desk.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{account.name}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{account.remoteUri}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.desk.view.account\')}">\n							<a ng-href="/desk/view/{{account.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.includes(\'main.desk.view.configurations\') || $state.is(\'main.desk.view.configuration\')}">\n							<a ng-href="/desk/view/{{account.id}}/configurations">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/desk/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-handbag"></i>\n						<a href="/desk/list">{{ \'APPLICATION_DESK_COM\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n						<form name="forms.formSetting" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.username" required ng-remote-validate="/api/desk/accounts/validate/username"/>\n								<span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formSetting.username.$touched || forms.formSetting.$submitted) && forms.formSetting.username.$error.ngRemoteValidate" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n				        </span>\n							</div>\n							<!-- END USERNAME -->\n\n\n              <!-- START REMOTE ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required ng-remote-validate="/api/desk/accounts/validate/remoteUri"/>\n								<span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formSetting.remoteUri.$touched || forms.formSetting.$submitted) && forms.formSetting.remoteUri.$error.ngRemoteValidate" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n				        </span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START AUTH TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n								<label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n								<ui-select data-ng-model="item.authType" name="authType" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="type in [\'basic\', \'oauth\'] | filter: $select.search">\n										<div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="item.authType == \'basic\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n								<span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n              <!-- START CONSUMER KEY -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerKey.$invalid}" ng-slide-down="item.authType == \'oauth\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_CONSUMER_KEY\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="consumerKey" placeholder="{{\'APPLICATION_CONSUMER_KEY\' | translate}}" class="form-control" data-ng-model="item.consumerKey" required/>\n								<span data-ng-show="forms.formSetting.consumerKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONSUMER KEY -->\n\n              <!-- START CONSUMER SECRET -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerSecret.$invalid}" ng-slide-down="item.authType == \'oauth\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_CONSUMER_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="consumerSecret" placeholder="{{\'APPLICATION_CONSUMER_SECRET\' | translate}}" class="form-control" data-ng-model="item.consumerSecret" required/>\n								<span data-ng-show="forms.formSetting.consumerSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONSUMER SECRET -->\n\n              <!-- START TOKEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="item.authType == \'oauth\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="token" placeholder="{{\'APPLICATION_TOKEN\' | translate}}" class="form-control" data-ng-model="item.token" required/>\n								<span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TOKEN -->\n\n              <!-- START TOKEN SECRET-->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.tokenSecret.$invalid}" ng-slide-down="item.authType == \'oauth\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_TOKEN_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="tokenSecret" placeholder="{{\'APPLICATION_TOKEN_SECRET\' | translate}}" class="form-control" data-ng-model="item.tokenSecret" required/>\n								<span data-ng-show="forms.formSetting.tokenSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TOKEN SECRET-->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n\n				</wizard>\n\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/account/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-paper-plane"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-notebook"></i>\n						<a href="/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="fax_accounts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/fax/accounts/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getFaxAccounts([\'name\', \'description\', \'phone\'])" csv-header="[\'Name\', \'Description\', \'Phone\']" field-separator=";" filename="fax_accounts.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedFaxAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.faxAccountsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="faxAccountByPage in faxAccountsByPage | filter: $select.search">\n													<div ng-bind-html="faxAccountByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(faxAccount, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="phone">{{ \'APPLICATION_PHONE\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="faxAccount in displayedFaxAccounts" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="fax_accounts.checked" checklist-value="faxAccount.id"></td>\n					      <td>{{faxAccount.name}}</td>\n								<td>{{faxAccount.description}}</td>\n								<td>{{faxAccount.phone}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/fax/accounts/view/{{faxAccount.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(faxAccount.name,faxAccount.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedFaxAccounts.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No fax account available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td></td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="phone" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_PHONE\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.faxAccountsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/account/view/view.applications.html",'<div class="row" data-ng-init="initApplication()">\n	<div class="col-md-12">\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(forms.info.$valid)">\n							<form name="forms.info" novalidate>\n								<!-- START APP -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid}">\n									<label class="control-label">{{\'APPLICATION_APPLICATION\' | translate}}</label>\n									<ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n				            <ui-select-match placeholder="{{\'APPLICATION_APPLICATION\' | translate}}">{{$select.selected | uppercase}}</ui-select-match>\n				            <ui-select-choices repeat="filter in [\'queue\', \'agent\'] | filter: $select.search">\n				              <div ng-bind-html="filter | uppercase | highlight: $select.search"></div>\n				            </ui-select-choices>\n				          </ui-select>\n									<span data-ng-show="(forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid && forms.info.app.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END APP -->\n\n								<!-- START APPADATA -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n									<label class="control-label">{{\'APPLICATION_ARGUMENTS\' | translate}}</label>\n									<ui-select data-ng-model="application.appdata" name="appdata" theme="bootstrap" required>\n				            <ui-select-match placeholder="{{\'APPLICATION_ARGUMENTS\' | translate}}">{{$select.selected.name}}</ui-select-match>\n				            <ui-select-choices repeat="item in items | filter: $select.search">\n				              <div data-ng-bind-html="item.name | highlight: $select.search"></div>\n				            </ui-select-choices>\n				          </ui-select>\n									<span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END APPADATA -->\n\n								<!-- START TIMEOUT -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid}">\n									<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}</label>\n									<input type="text" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" required>\n									<span data-ng-show="(forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid && forms.info.timeout.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END TIMEOUT -->\n\n								<!-- START INTERVAL -->\n								<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.info.interval.$touched || forms.info.$submitted) && forms.info.interval.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVAL\' | translate}}</label>\n									<input type="text" name="interval" placeholder="*|*|*|*" class="form-control" data-ng-model="application.interval">\n									<span data-ng-show="(forms.info.info.interval.$touched || forms.info.$submitted) && forms.info.interval.$invalid && forms.info.interval.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div> -->\n								<!-- END INTERVAL -->\n\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/account/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-paper-plane"></i>\n					<a href="/">{{ \'APPLICATION_FAX\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-notebook"></i>\n					<a href="/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="account"></i>\n				</li>\n				<li data-ng-show="account">\n					<a href="#">{{ account.name || account.description }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/account.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ account.name || account.description }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{ account.phone }}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.fax.accounts.view.settings\')}">\n							<a href="/fax/accounts/view/{{account.id}}/settings">\n							<i class="icon-settings"></i>\n							{{\'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.fax.accounts.view.routes\') || $state.is(\'main.fax.accounts.view.applications\')}">\n							<a href="/fax/accounts/view/{{account.id}}/routes">\n							<i class="icon-directions"></i>\n							{{\'APPLICATION_ROUTES\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/account/view/view.routes.html",'<div class="row" data-ng-init="getFaxApplications()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ROUTES\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/fax/accounts/view/{{account.id}}/applications" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_APPLICATION\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n								<!-- <th width="5%">{{ \'APPLICATION_ID\' | translate }}</th> -->\n						    <th>{{\'APPLICATION_APPLICATION\' | translate}}</th>\n						    <th>{{\'APPLICATION_ARGUMENTS\' | translate}}</th>\n								<th>{{\'APPLICATION_TIMEOUT\' | translate}}</th>\n						    <!-- <th>{{\'APPLICATION_INTERVAL\' | translate}}</th> -->\n								<th width="5%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n						<tbody ui-sortable="sortableOptions" data-ng-model="faxApplications">\n					    <tr data-ng-repeat="application in faxApplications | orderBy:\'priority\'">\n								<td><span data-ng-class="{\'label-info\': application.app == \'agent\', \'label-success\': application.app == \'queue\'}" class="label label-sm"> {{application.app}} </span></td>\n								<td>{{getAppdata(application.app, application.appdata)}}</td>\n								<td>{{application.timeout}}</td>\n								<!-- <td>{{application.interval}}</td> -->\n					      <td>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app,application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="faxApplications.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No applications available</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/fax/account/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItemFaxAccount()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<!-- START TRUNKS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.trunk.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="account.TrunkId" name="trunk" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_TRUNK\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="trunk.id as trunk in trunks | filter: $select.search">\n										<div data-ng-bind="trunk.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.trunk.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START TRUNKS -->\n\n							<!-- START PHONE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.phone.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PHONE\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="phone" placeholder="{{\'APPLICATION_PHONE\' | translate}}" class="form-control" data-ng-model="account.phone" required/>\n								<span data-ng-show="forms.formSetting.phone.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PHONE -->\n\n							<!-- START ECM -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_ECM\' | translate}}<span class="required" aria-required="true">*</span></label><br>\n								<!-- <button type="button" name="ecm" class="btn btn-default form-control" data-ng-model="account.ecm" bs-checkbox>{{account.ecm ? \'ENABLED\' : \'DISABLED\'}}</button> -->\n								<input\n									bs-switch\n									ng-model="account.ecm"\n									type="checkbox"\n									switch-active="{{ isActive }}"\n									switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n									switch-on-color="{{ onColor }}"\n									switch-off-color="{{ offColor }}"\n									switch-animate="{{ animate }}"\n									switch-size="{{ size }}"\n									switch-label="{{ label }}"\n									switch-icon="{{ icon }}"\n									switch-radio-off="{{ radioOff }}"\n									switch-label-width="{{ labelWidth }}"\n									switch-handle-width="{{ handleWidth }}">\n							</div>\n							<!-- END ECM -->\n\n							<!-- START FAXHEADER -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.faxheader.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FAXHEADER\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="faxheader" placeholder="{{\'APPLICATION_FAXHEADER\' | translate}}" class="form-control" data-ng-model="account.faxheader" required/>\n								<span data-ng-show="forms.formSetting.faxheader.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FAXHEADER -->\n\n							<!-- START LOCALID -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.localid.$invalid}">\n								<label class="control-label">{{\'APPLICATION_LOCALID\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="localid" placeholder="{{\'APPLICATION_LOCALID\' | translate}}" class="form-control" data-ng-model="account.localid" required/>\n								<span data-ng-show="forms.formSetting.localid.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END LOCALID -->\n\n							<!-- START MAXRATE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.maxrate.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MAXRATE\' | translate}}</label>\n								<ui-select data-ng-model="account.maxrate" name="maxrate" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="maxrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n										<div data-ng-bind="maxrate | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.maxrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START MAXRATE -->\n\n							<!-- START MINRATE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.minrate.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MINRATE\' | translate}}</label>\n								<ui-select data-ng-model="account.minrate" name="minrate" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="minrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n										<div data-ng-bind="minrate | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.minrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START MINRATE -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
+a.put("app/fax/account/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-paper-plane"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-notebook"></i>\n						<a href="/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n						<form name="forms.formSetting" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<!-- START TRUNKS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.trunk.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="item.TrunkId" name="trunk" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_TRUNK\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="trunk.id as trunk in trunks | filter: $select.search">\n										<div data-ng-bind="trunk.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.trunk.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START TRUNKS -->\n\n							<!-- START PHONE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.phone.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PHONE\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="phone" placeholder="{{\'APPLICATION_PHONE\' | translate}}" class="form-control" data-ng-model="item.phone" required/>\n								<span data-ng-show="forms.formSetting.phone.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PHONE -->\n\n							<!-- START ECM -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_ECM\' | translate}}<span class="required" aria-required="true">*</span></label><br>\n								<!-- <button type="button" name="ecm" class="btn btn-default form-control" data-ng-model="item.ecm" bs-checkbox>{{item.ecm ? \'ENABLED\' : \'DISABLED\'}}</button> -->\n								<input\n									bs-switch\n									ng-model="item.ecm"\n									type="checkbox"\n									switch-active="{{ isActive }}"\n									switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n									switch-on-color="{{ onColor }}"\n									switch-off-color="{{ offColor }}"\n									switch-animate="{{ animate }}"\n									switch-size="{{ size }}"\n									switch-label="{{ label }}"\n									switch-icon="{{ icon }}"\n									switch-radio-off="{{ radioOff }}"\n									switch-label-width="{{ labelWidth }}"\n									switch-handle-width="{{ handleWidth }}">\n							</div>\n							<!-- END ECM -->\n\n							<!-- START FAXHEADER -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.faxheader.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FAXHEADER\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="faxheader" placeholder="{{\'APPLICATION_FAXHEADER\' | translate}}" class="form-control" data-ng-model="item.faxheader" required/>\n								<span data-ng-show="forms.formSetting.faxheader.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FAXHEADER -->\n\n							<!-- START LOCALID -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.localid.$invalid}">\n								<label class="control-label">{{\'APPLICATION_LOCALID\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="localid" placeholder="{{\'APPLICATION_LOCALID\' | translate}}" class="form-control" data-ng-model="item.localid" required/>\n								<span data-ng-show="forms.formSetting.localid.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END LOCALID -->\n\n							<!-- START MAXRATE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.maxrate.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MAXRATE\' | translate}}</label>\n								<ui-select data-ng-model="item.maxrate" name="maxrate" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="maxrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n										<div data-ng-bind="maxrate | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.maxrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START MAXRATE -->\n\n							<!-- START MINRATE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.minrate.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MINRATE\' | translate}}</label>\n								<ui-select data-ng-model="item.minrate" name="minrate" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="minrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n										<div data-ng-bind="minrate | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.minrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START MINRATE -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n\n				</wizard>\n\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/automation/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-settings"></i>\n						<a href="#">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-settings font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="faxAutomations.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_AUTOMATION\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/fax/automations/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getFaxAutomations([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="fax_automations.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedFaxAutomations" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.faxAutomationsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="faxAutomationByPage in faxAutomationsByPage | filter: $select.search">\n													<div ng-bind-html="faxAutomationByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(faxAutomation, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="faxAutomation in displayedFaxAutomations">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="faxAutomations.checked" checklist-value="faxAutomation.id"></td>\n					      <td>{{faxAutomation.name}}</td>\n								<td>{{faxAutomation.description}}</td>\n								<td>\n									<input\n										data-ng-change="updateItem(faxAutomation.id, faxAutomation.status)",\n								    bs-switch\n								    ng-model="faxAutomation.status"\n								    type="checkbox"\n								    switch-active="{{ isActive }}"\n								    switch-on-text="{{ onText }}"\n								    switch-off-text="{{ offText }}"\n								    switch-on-color="{{ onColor }}"\n								    switch-off-color="{{ offColor }}"\n								    switch-animate="{{ animate }}"\n								    switch-size="{{ size }}"\n								    switch-label="{{ label }}"\n								    switch-icon="{{ icon }}"\n								    switch-radio-off="{{ radioOff }}"\n								    switch-label-width="{{ labelWidth }}"\n								    switch-handle-width="{{ handleWidth }}">\n								</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/fax/automations/view/{{faxAutomation.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(faxAutomation.name, faxAutomation.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedFaxAutomations.length">\n								<td colspan="6" class="text-center">\n									<i>{{\'MESSAGE_NO_AVAILABLE_AUTOMATIONS\' | translate}}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.faxAutomationsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/automation/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="/">{{ \'APPLICATION_FAX\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/fax/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="automation"></i>\n				</li>\n				<li data-ng-show="automation">\n					<a href="#">{{ automation.description || automation.name }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/automation.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ automation.name }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{automation.description}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.fax.automations.view.settings\')}">\n							<a href="/fax/automations/view/{{automation.id}}/settings">\n							<i class="icon-settings"></i>\n							{{\'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/automation/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">OR {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">AND {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_4" data-toggle="tab">{{\'APPLICATION_ACTIONS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.info" data-ng-submit="forms.info.$valid && updateAutomation()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="automation.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="automation.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n					<!-- IMAP TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewCondition(\'or\')">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'or\'}">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.condition" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n													<div data-ng-bind="condition.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.operator" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="operator.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-4" data-ng-switch="condition.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="condition.attribute" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n										</div>\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeCondition(condition.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessConditions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n					</div>\n					<!-- END IMAP TAB -->\n\n					<div class="tab-pane" id="tab_1_3">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewCondition(\'and\')">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'and\'}">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.condition" name="conditionAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n													<div data-ng-bind="condition.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.operator" name="operatorAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="operator.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-4" data-ng-switch="condition.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="condition.attribute" name="attributeAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" data-ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n											<span data-ng-show="forms.and.attributeAnd{{$index}}.$invalid && forms.and.attributeAnd{{$index}}.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeCondition(condition.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessConditions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n					</div>\n\n					<!-- SMTP TAB -->\n					<div class="tab-pane" id="tab_1_4">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewAction()">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="action in automation.BusinessActions">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="action.condition" theme="bootstrap" on-select="updateAction(action.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="action.key as action in automations.actions | filter: $select.search">\n													<div data-ng-bind="action.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3" data-ng-switch="action.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="action.attribute" theme="bootstrap" on-select="updateAction(action.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(action.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" data-ng-model="action.attribute" data-ng-blur="updateAction(action.id, \'attribute\', action.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n										</div>\n									</div>\n									<div class="col-md-4">\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeAction(action.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessActions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n\n					</div>\n					<!-- END SMTP TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/fax/automation/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN PAGE HEADER-->\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/fax/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n		<!-- END PAGE HEADER-->\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-settings font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n	        <wz-step title="{{\'APPLICATION_NEW_AUTOMATION\' | translate}}" canexit="formValidation(forms.automation.$valid && forms.automation.$valid)">\n						<form name="forms.automation" novalidate>\n							<div class="row">\n								<div class="col-md-12">\n									<div class="form-group" data-ng-class="{\'has-error\': forms.automation.name.$invalid && forms.automation.$submitted}">\n										<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<input class="form-control" type="text" name="name" value="" data-ng-model="automations.name" required>\n										<span data-ng-show="forms.automation.name.$invalid && forms.automation.name.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n\n									<div class="form-group" data-ng-class="{\'has-error\': forms.automation.description.$invalid && forms.automation.$submitted}">\n										<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n										<input class="form-control" type="text" name="description" value="" data-ng-model="automations.description">\n										<span data-ng-show="forms.automation.description.$invalid && forms.automation.description.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<hr>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'or\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-user"></i>\n									<span class="caption-subject">Meet <strong>any</strong> of the following conditions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.or">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionOr{{$index}}.$invalid && forms.automation.$submitted && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].condition" name="conditionOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="condition in automations.or[$index].conditions | filter: $select.search">\n														<div data-ng-bind="condition.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.conditionOr{{$index}}.$invalid && forms.automation.conditionOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorOr{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].operator" name="operatorOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="operator.key as operator in automations.or[$index].condition.operators | filter: $select.search">\n														<div data-ng-bind="operator.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.operatorOr{{$index}}.$invalid && forms.automation.operatorOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4" data-ng-switch="automations.or[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].attribute" name="attributeOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.or[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number">\n												<input class="form-control" type="text" min="0" name="attributeOr{{$index}}" value="" data-ng-model="automations.or[$index].attribute" required>\n												<span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'or\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.or.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add condition</i>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'and\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-people"></i>\n									<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.and">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].condition" name="conditionAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="condition in automations.and[$index].conditions | filter: $select.search">\n														<div data-ng-bind="condition.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.conditionAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].operator" name="operatorAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="operator.key as operator in automations.and[$index].condition.operators | filter: $select.search">\n														<div data-ng-bind="operator.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.operatorAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4" data-ng-switch="automations.and[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].attribute" name="attributeAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.and[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number">\n												<input class="form-control" type="text" min="0" name="attributeAnd{{$index}}" value="" data-ng-model="automations.and[$index].attribute" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid}" required>\n												<span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'and\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.and.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add condition</i>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'actions\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-magic-wand"></i>\n									<span class="caption-subject">Perform these actions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.actions">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.actions.conditionAction{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.actions[$index].condition" name="conditionAction{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="action in automations.actions[$index].actions | filter: $select.search">\n														<div data-ng-bind="action.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.actions.conditionAction{{$index}}.$invalid && forms.actions.conditionAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3" data-ng-switch="automations.actions[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.actions[$index].attribute" name="attributeAction{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.actions[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid}">\n												<input class="form-control" type="text" min="0" name="attributeAction{{$index}}" value="" data-ng-model="automations.actions[$index].attribute" required>\n												<span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4">\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'actions\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.actions.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add action</i>\n								</div>\n							</div>\n							<div class="row">\n								<div class="col-md-12">\n									<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n								</div>\n							</div>\n						</form>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/fax/inbox/inbox.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-paper-plane"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-note"></i>\n						<a href="/fax/inbox/incoming">{{ \'APPLICATION_INBOX\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE CONTENT-->\n<div class="row inbox">\n	<div class="col-md-12" ui-view>\n	</div>\n</div>\n'),a.put("app/fax/inbox/incoming/incoming.html",'<!-- END PAGE HEADER-->\n<div data-ng-init="getRooms()">\n	<!-- <pre>\n		{{faxRooms | json}}\n	</pre> -->\n	<div class="inbox-header">\n		<h1 class="pull-left">Inbox</h1>\n	</div>\n	<div class="inbox-content">\n		<table class="table table-advance" st-table="displayedFaxRooms" st-safe-src="faxRooms">\n			<thead>\n				<tr>\n					<th colspan="8" style="background: #eef4f7; border: none; border-bottom: solid 5px #fff;">\n						<div class="row">\n							<div class="col-md-6">\n								<input type="checkbox" class="mail-checkbox mail-group-checkbox checker" data-ng-model="checked" data-ng-change="switchCheckbox(displayedFaxRooms, checked)">\n								<div class="btn-group">\n									<a data-ng-href="/fax/inbox/compose" class="btn btn-sm blue">{{\'APPLICATION_NEW_MESSAGE\' | translate}} <i class="fa fa-plus"></i></a>\n									<!-- <a class="btn btn-sm blue dropdown-toggle" href="#" data-toggle="dropdown">\n										{{\'APPLICATION_MORE\' | translate}} <i class="fa fa-angle-down"></i>\n									</a> -->\n									<ul class="dropdown-menu">\n										<li>\n											<a href="#" data-ng-click="markAsRead(true)">\n											<i class="icon-paper-plane-open"></i> {{\'APPLICATION_MARK_AS_READ\' | translate}} </a>\n										</li>\n										<li>\n											<a href="#" data-ng-click="markAsRead(false)">\n											<i class="icon-paper-plane"></i> {{\'APPLICATION_MARK_AS_UNREAD\' | translate}} </a>\n										</li>\n										<li class="divider">\n										</li>\n										<li>\n											<a href="#" data-ng-click="deleteMessage()">\n											<i class="icon-trash"></i> {{\'APPLICATION_DELETE\' | translate}} </a>\n										</li>\n									</ul>\n								</div>\n							</div>\n							<div class="col-md-6">\n								<div class="input-group input-medium pull-right">\n									<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n									<span class="input-group-addon btn green" style="cursor: default;">\n										<i class="icon-magnifier" style="color: white;"></i>\n									</span>\n								</div>\n								<ui-select data-ng-model="conf.faxRoomsByPage" theme="bootstrap" style="width: 100px;" class="pull-right margin-right-10">\n									<ui-select-match placeholder="{{ \'APPLICATION_SEARCH\' | translate }}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="p in [10, 20, 35, 50] | filter: $select.search">\n										<span ng-bind-html="p | highlight: $select.search"></span>\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n					</th>\n				</tr>\n			</thead>\n			<tbody>\n				<tr data-ng-repeat="faxRoom in displayedFaxRooms | orderBy:\'-updatedAt\'" data-ng-class="{unread: !faxRoom.read}" data-ng-click="go(\'/fax/inbox/room/\' + faxRoom.id, faxRoom.id, \'OPEN\')" class="animate-repeat">\n					<td class="inbox-small-cells" style="border: none;">\n						<input type="checkbox" class="checker" checklist-model="checkedMailMessages.id" checklist-value="faxRoom.id">\n					</td>\n					<!-- <td class="inbox-small-cells" style="border: none;">\n						<i class="fa fa-star" data-ng-class="{\'inbox-started\': faxRoom.favorite}" data-ng-click="markAsFavorite(faxRoom.id, faxRoom.favorite)"></i>\n					</td> -->\n					<td class="view-message hidden-xs" style="cursor:pointer; border:none;">\n						#{{faxRoom.id}}\n					</td>\n					<!-- <td class="inbox-small-cells" style="border: none;">\n						<i class="fa fa-star" data-ng-class="{\'inbox-started\': faxRoom.favorite}" data-ng-click="markAsFavorite(faxRoom.id, faxRoom.favorite)"></i>\n					</td> -->\n					<!-- <td class="view-message hidden-xs" style="cursor:pointer; border:none;">\n						{{faxRoom.subject}}\n					</td> -->\n					<td class="view-message" style="cursor:pointer; border:none;">\n					 	{{faxRoom.from}}\n					</td>\n					<td class="view-message" style="cursor:pointer; border:none;">\n					 	{{faxRoom.MailAccount.description ? faxRoom.MailAccount.description : faxRoom.MailAccount.name}}\n					</td>\n					<td class="view-message" style="cursor:pointer; border:none;" data-ng-switch="faxRoom.status">\n						<span class="badge badge-default" data-ng-class="{\n						\'badge-danger\': faxRoom.status == \'NEW\',\n						\'badge-warning\': faxRoom.status == \'OPEN\',\n						\'badge-info\': faxRoom.status == \'PENDING\',\n						\'badge-success\': faxRoom.status == \'CLOSED\'}"> {{faxRoom.status | uppercase}} </span>\n					</td>\n					<td class="view-message" style="cursor:pointer; border:none;">\n						<span class="badge badge-success badge-roundless" data-ng-show="faxRoom.User.fullname"> {{faxRoom.User.fullname}} </span>\n						<span class="badge badge-default badge-roundless" data-ng-hide="faxRoom.User.fullname"> {{\'APPLICATION_UNASSIGNED\' | translate}} </span>\n					</td>\n					<td class="view-message text-right" context-menu="menuOptions" style="border: none;">\n						<time is="relative-time" datetime="{{faxRoom.updatedAt}}">\n							April 1, 2014\n						</time>\n					</td>\n				</tr>\n				<tr data-ng-hide="faxRooms.length">\n					<td colspan="6" class="text-center">\n						<i>{{\'MESSAGE_NO_AVAILABLE_MESSAGES\' | translate}}</i>\n					</td>\n				</tr>\n				<tr>\n					<td colspan="8" class="text-center" style="border: none;">\n						<div st-pagination class="pagination" st-items-by-page="conf.faxRoomsByPage" st-displayed-pages="7"></div>\n					</td>\n				</tr>\n			</tbody>\n		</table>\n	</div>\n</div>\n'),a.put("app/fax/inbox/room/room.html",'<!-- BEGIN TODO CONTENT -->\n<div class="todo-content" data-ng-init="initRoomView()">\n	<div class="portlet light">\n		<!-- PROJECT HEAD -->\n		<div class="portlet-title">\n			<div class="caption" data-ng-show="faxRoom">\n				<i class="icon-bar-chart font-green-sharp hide"></i>\n				<span class="badge badge-default" data-ng-class="{\'badge-error\': faxRoom.status == \'NEW\',\n				\'badge-warning\': faxRoom.status == \'OPEN\',\n				\'badge-info\': faxRoom.status == \'PENDING\',\n				\'badge-success\': faxRoom.status == \'CLOSED\'}"> {{faxRoom.status | uppercase}} </span>\n			</div>\n			<div class="actions" data-ng-show="faxRoom">\n				<div class="btn-group" data-ng-show="Auth.isAdmin()">\n					<a class="btn grey-salsa btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n					{{ \'APPLICATION_ASSIGN\' | translate }} <i class="fa fa-angle-down"></i>\n					</a>\n					<ul class="dropdown-menu pull-right">\n						<li data-ng-repeat="agent in agents">\n							<a href="#" data-ng-click="assignAgent(agent.id)">\n							{{agent.fullname}} <span class="badge badge-default"> {{agent.fullname | uppercase | limitTo : 1}} </span>\n							</a>\n						</li>\n					</ul>\n				</div>\n				<div class="btn-group">\n					<a class="btn green-haze btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n					{{ \'APPLICATION_STATUS\' | translate }} <i class="fa fa-angle-down"></i>\n					</a>\n					<ul class="dropdown-menu pull-right">\n						<li>\n							<a href="#" data-ng-click="updateStatus(\'PENDING\')">\n							{{\'STATUS_PENING\' | translate}} <span class="badge badge-danger">\n							P </span>\n							</a>\n						</li>\n						<li>\n							<a href="#" data-ng-click="updateStatus(\'CLOSED\')">\n							{{\'STATUS_CLOSED\' | translate}} <span class="badge badge-success">\n							C </span>\n							</a>\n						</li>\n					</ul>\n				</div>\n			</div>\n		</div>\n		<!-- end PROJECT HEAD -->\n		<div class="portlet-body">\n			<div class="row">\n				<div data-ng-show="faxRoom" data-ng-class="{\'col-md-7 col-sm-7\': faxRoom}">\n					<div class="scroller" id="faxMessages" style="height: 500px; overflow-y: scroll; width: auto;" data-always-visible="1" data-rail-visible1="1" data-initialized="1">\n						<ul class="chats">\n							<li data-ng-class="{\'in\': faxMessage.status == \'RECEIVED\', \'out\': (faxMessage.status == \'SENT\' || faxMessage.status == \'SENDING\' || faxMessage.status == \'FAILED\' || faxMessage.status == \'NOT SENT\')}" data-ng-repeat="faxMessage in faxRoom.FaxMessages | orderBy:\'createdAt\'">\n							<img class="avatar" alt="" data-ng-src="api/users/avatar/{{getCurrentUser().userpic && faxMessage.status === \'SENT\' ? getCurrentUser().userpic : \'unknown_avatar\'}}">\n							<div class="message">\n								<span class="arrow">\n								</span>\n								<span class="bold">{{\'APPLICATION_FROM\' | translate}}: </span>\n								<span>{{faxMessage.From.fullname}} </span>\n								<span> &#60;{{faxMessage.From.phone}}&#62; </span>\n								<br>\n								<span class="bold">{{\'APPLICATION_TO\' | translate}}: </span>\n								<span>{{faxMessage.To.fullname}} </span>\n								<span> &#60;{{faxMessage.To.phone}}&#62; </span>\n								<br>\n								<span class="todo-tasklist-date">\n									<i class="fa fa-calendar"></i>\n									<time is="relative-time" datetime="{{faxMessage.createdAt}}">\n										April 1, 2014\n									</time>\n								</span>\n								<span data-ng-show="faxMessage.status == \'FAILED\' || faxMessage.status == \'SENDING\'" class="badge badge-default" data-ng-class="{\'badge-error\': faxMessage.status == \'FAILED\', \'badge-warning\': faxMessage.status == \'SENDING\'}"> {{faxMessage.status | uppercase}} </span>\n								<br>\n								<br>\n								<span class="body">\n									<div class="wrapper" ng-controller="FaxInboxRoomCtrl" style="max-height:600px; overflow:auto;">\n					          <ng-pdf pdf-url="/api/fax/messages/{{faxMessage.id}}/content" template-url="/assets/plugins/angular-pdf/example/partials/viewer.html" scale="0.5" page=1></ng-pdf>\n					        </div>\n								</span>\n								<br>\n							</div>\n						</li>\n						</ul>\n					</div>\n				</div>\n				<div data-ng-class="{\'col-md-5 col-sm-5\': faxRoom, \'col-md-12 col-sm-12\': !faxRoom}">\n					<form name="forms.compose" data-ng-submit="forms.compose.$valid && sendFax()" class="form-horizontal" novalidate>\n						<!-- TASK HEAD -->\n						<div class="form">\n							<div class="form-group">\n								<div class="col-md-12 col-sm-12">\n									<div class="todo-taskbody-user">\n										<img class="todo-userpic pull-left" data-ng-src="api/users/avatar/{{getCurrentUser().userpic ? getCurrentUser().userpic : \'unknown_avatar\'}}" width="50px" height="50px">\n										<span class="todo-username pull-left">{{ getCurrentUser().fullname }}</span>\n									</div>\n								</div>\n							</div>\n							<!-- END TASK HEAD -->\n\n							<!-- FAX FROM -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.compose.from.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">{{\'APPLICATION_FROM\' | translate}}:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select data-ng-model="form.from" theme="bootstrap" name="from" required ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_FROM\' | translate}}...">{{$select.selected.name}} - {{$select.selected.phone}}</ui-select-match>\n												<ui-select-choices repeat="faxAccount in faxAccounts | filter: $select.search">\n													<div ng-bind-html="faxAccount.name | highlight: $select.search"></div>\n													<small ng-bind-html="faxAccount.phone | highlight: $select.search"></small>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.compose.from.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n\n							<!-- FAX TO -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.compose.to.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">{{\'APPLICATION_TO\' | translate}}:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select tagging tagging-label="" multiple required data-ng-model="form.sto" theme="bootstrap" name="to" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_TO\' | translate}}...">{{$item}}</ui-select-match>\n												<ui-select-choices repeat="to in form.to | filter:$select.search">\n													{{to}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.compose.to.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n\n							<!-- TASK DESC -->\n							<div class="form-group">\n								<div class="col-md-12">\n									<!-- <textarea class="form-control todo-taskbody-taskdesc" rows="8" data-ng-model="form.text" name="text" style="resize: none;"></textarea> -->\n									<div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html" name="html"></div>\n								</div>\n							</div>\n							<!-- END TASK DESC -->\n\n							<!-- START ATTACH -->\n							<div class="form-group">\n								<div class="col-md-6">\n									<input type="file" nv-file-select uploader="uploader" name="file">\n									<table class="table" border="0">\n										<tbody>\n										<tr data-ng-repeat="item in uploader.queue">\n												<td style="border-top-style:none">\n													<strong>\n														{{ item.file.name }}\n													</strong>\n												</td>\n												<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n													{{ item.file.size/1024/1024|number:2 }} MB\n												</td>\n												<td nowrap style="border-top-style:none">\n													<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n															<span class="glyphicon glyphicon-trash"></span> Remove\n													</button>\n												</td>\n											</tr>\n										</tbody>\n									</table>\n								</div>\n								<div class="col-md-6">\n									<div class="form-actions right todo-form-actions">\n										<button class="btn btn-circle btn-sm green-haze">{{ \'APPLICATION_SEND\' | translate }}</button>\n										<input type="button" name="cancel" value="{{ \'APPLICATION_CANCEL\' | translate }}" class="btn btn-circle btn-sm btn-default" data-ng-click="cancel()">\n									</div>\n								</div>\n							</div>\n							<!-- END ATTACH -->\n\n						</div>\n					</form>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n<!-- END TODO CONTENT -->\n'),a.put("app/fax/queue/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-paper-plane"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-layers"></i>\n						<a href="/fax/queues/lis">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-layers font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="faxQueues.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/fax/queues/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getFaxQueues([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Name\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="fax_queues.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedFaxQueues" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.queuesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="queueByPage in queuesByPage | filter: $select.search">\n													<div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(queue, checked)" checklist-model checklist-value="id"></th>\n								<th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate}}</th>\n								<th st-sort="timeout">{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}</th>\n						    <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="queue in displayedFaxQueues" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="faxQueues.checked" checklist-value="queue.id"></td>\n					      <td>{{queue.name}}</td>\n								<td>{{queue.description}}</td>\n								<td>{{queue.strategy | uppercase}}</td>\n								<td>{{queue.timeout}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/fax/queues/view/{{queue.id}}/settings">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(queue.name, queue.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedFaxQueues.length">\n								<td colspan="6" class="text-center">\n									<i>No available queues</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="67" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.queuesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body" style="width: 50%; margin: 0 auto;">\n				<!-- BEGIN FORM-->\n				<form action="index.html" class="form-horizontal form-row-seperated">\n					<div class="form-body text-center">\n						<div class="form-group last">\n							<div class="col-md-9" id="multi-select-team">\n							</div>\n						</div>\n					</div>\n				</form>\n				<!-- END FORM-->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/fax/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-paper-plane"></i>\n					<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-layers"></i>\n					<a href="/fax/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					<i data-ng-show="queue" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="queue">\n					<a href="#">{{queue.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{queue.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.fax.queues.view.settings\')}">\n							<a data-ng-href="/fax/queues/view/{{queue.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.fax.queues.view.agents\')}">\n							<a data-ng-href="/fax/queues/view/{{queue.id}}/agents">\n							<i class="icon-people"></i>\n							{{ \'APPLICATION_AGENTS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/queue/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.general" data-ng-submit="forms.general.$valid && updateFaxQueue()" novalidate>\n					<!-- START NAME -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n						<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n						<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n						<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END NAME -->\n\n					<!-- START DESCRIPTION -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n						<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n					</div>\n					<!-- END DESCRIPTION -->\n\n					<!-- START TIMEOUT -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}</label>\n						<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" min="1" data-ng-model="queue.timeout"/>\n					</div>\n					<!-- END TIMEOUT -->\n\n					<!-- START HEADER SHAPE -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n						<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n						<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n						<ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n							<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n							<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n								<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n					</div>\n					<!-- END HEADER SHAPE -->\n					<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n				</form>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/fax/queue/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-paper-plane"></i>\n				<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n        <i class="fa fa-angle-right"></i>\n			</li>\n      <li>\n				<i class="icon-layers"></i>\n				<a href="/fax/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-layers font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n					<form name="forms.general" data-ng-submit="forms.general.$valid && createItem()" novalidate>\n						<!-- START NAME -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n							<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n						</div>\n						<!-- END DESCRIPTION -->\n\n						<!-- START TIMEOUT -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n							<label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="number" min="0" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n							<span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid && forms.general.timeout.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END TIMEOUT -->\n\n						<!-- START STRATEGY -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n							<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n								<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n									<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid && forms.general.strategy.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END STRATEGY -->\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n					</form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),
+a.put("app/fax/timeline/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-paper-plane"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-list"></i>\n						<a href="/fax/timeline/list"> {{\'APPLICATION_TIMELINE\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n	<div class="col-md-12">\n    <h3 class="page-title">\n				{{\'APPLICATION_TIMELINE\' | translate}}\n			</h3>\n			<!-- END PAGE HEADER-->\n			<!-- BEGIN PAGE CONTENT-->\n			<div class="timeline">\n				<!-- TIMELINE ITEM -->\n				<div class="timeline-item" data-ng-repeat="event in events | orderBy:\'-id\'">\n					<div class="timeline-badge">\n						<div class="timeline-icon">\n							<i class="icon-paper-plane font-green-haze"></i>\n						</div>\n					</div>\n					<div class="timeline-body">\n						<div class="timeline-body-arrow"></div>\n						<div class="timeline-body-head">\n							<div class="timeline-body-head-caption">\n								<span class="timeline-body-alerttitle" data-ng-class="{\'font-red\': event.name == \'INCOMING\', \'font-blue\': event.name == \'ATTEMPT\', \'font-green\': event.name == \'TAKEN\'}">{{event.name | uppercase}}</span>\n								<span class="timeline-body-time font-grey-cascade">{{\'APPLICATION_AT\' | translate}} {{event.createdAt | date:\'yyyy-MM-dd HH:mm:ss\'}}</span>\n							</div>\n							<div class="timeline-body-head-actions">\n								<div class="btn-group">\n									<a class="btn btn-circle btn-sm dropdown-toggle btn-success" href="/fax/inbox/room/{{event.FaxRoomId}}">{{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_FAX\' | translate}}</a>\n								</div>\n							</div>\n						</div>\n						<div class="timeline-body-content">\n							<span class="font-grey-cascade" data-ng-show="event.User">\n							{{event.FaxRoom.subject ? event.FaxRoom.subject + \' - \' : \'\'}}<a href="/agents/view/{{event.UserId}}/account">{{event.User.fullname}}</a>\n							</span>\n						</div>\n					</div>\n				</div>\n				<!-- END TIMELINE ITEM -->\n			</div>\n			<!-- END PAGE CONTENT-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/freshdesk/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-handbag"></i>\n					<a href="/freshdesk/list">{{ \'APPLICATION_FRESHDESK\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-handbag font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_FRESHDESK\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="accounts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle" href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/freshdesk/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'apiKey\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Api Key\']" field-separator=";" filename="freshdesk_accounts.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedFreshdeskAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n													<div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n								<th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n								<th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="account in displayedFreshdeskAccounts" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n					      <td>{{account.name}}</td>\n					      <td>{{account.username}}</td>\n								<td>{{account.remoteUri}}</td>\n								<td>{{account.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/freshdesk/view/{{account.id}}/account">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n									<a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n										{{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedFreshdeskAccounts.length">\n								<td colspan="7" style="text-align:center;">\n									<i>No account available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="7" class="text-center">\n									<div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n					</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/freshdesk/view/view.account.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n								<span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n								<span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START API KEY -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.apiKey.$invalid}">\n								<label class="control-label">{{\'APPLICATION_API_KEY\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="apiKey" placeholder="{{\'APPLICATION_API_KEY\' | translate}}" class="form-control" data-ng-model="account.apiKey" required/>\n								<span data-ng-show="forms.formSetting.apiKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END API KEY -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/freshdesk/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createConfiguration()">\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n							<form name="formsConfiguration.info" novalidate>\n								<!-- START NAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n									<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n									<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n									<span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END NAME -->\n								<!-- START DESCRIPTION -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n									<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n								</div>\n								<!-- END DESCRIPTION -->\n\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/freshdesk/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n					</li>\n          <li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n					</li>\n          <li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- SUBJECT TAB -->\n					<div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n	            <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n	              <div class="col-md-3">\n	                <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n	                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n	                <div class="form-group">\n	                  <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n	                </div>\n	              </div>\n	              <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n	                <div class="form-group">\n	                  <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n					<div class="tab-pane ui-padding" id="tab_1_2">\n						<div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n							<div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n								<!-- <pre>\n									{{descriptionItem|json}}\n								</pre> -->\n	              <div class="col-md-2">\n	                <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n	                  <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n	                <div class="form-group">\n	                  <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n	                </div>\n	              </div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n									<input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n								</div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n									<ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n	                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n								</div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n									<input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n								</div>\n	              <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n	                <div class="form-group">\n	                  <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n					<div class="tab-pane ui-padding" id="tab_1_3">\n						<div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n	            <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n	              <div class="col-md-3">\n	                <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n	                  <ui-select-choices repeat="item.name as item in accountFields | filter: $select.search">\n	                    <div ng-bind-html="item.label | highlight: $select.search"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n	                <div class="form-group">\n										<ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n		                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected[0]}}</ui-select-match>\n		                  <ui-select-choices repeat="item[0] as item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n		                    <div ng-bind-html="item[0] | highlight: $select.search"></div>\n		                  </ui-select-choices>\n		                </ui-select>\n	                </div>\n	              </div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n									<div class="form-group">\n										<ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n		                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n		                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n		                    <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n		                  </ui-select-choices>\n		                </ui-select>\n									</div>\n								</div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n	                <div class="form-group">\n										<input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n	                </div>\n	              </div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n	                <div class="form-group">\n										<ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END FIELDS TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/freshdesk/view/view.configurations.html",'<div ui-view class="profile-content">\n	<div class="row" data-ng-init="getConfigurations()">\n		<div class="col-md-12">\n			<div class="portlet light">\n				<div class="portlet-title  tabbable-line">\n					<div class="caption caption-md">\n						<i class="icon-globe theme-font hide"></i>\n						<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n					</div>\n					<div class="actions">\n						<div class="btn-group">\n							<a class="btn green-jungle " href="/freshdesk/view/{{account.id}}/configuration" data-toggle="dropdown">\n								<i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n							</a>\n						</div>\n					</div>\n				</div>\n				<div class="portlet-body">\n					<!-- START TABLE -->\n					<table class="table table-striped table-bordered table-hover">\n						  <thead>\n							  <tr>\n							    <th>{{\'APPLICATION_NAME\' | translate}}</th>\n									<th>{{\'APPLICATION_DESCRIPTION\' | translate}}</th>\n									<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n							  </tr>\n						  </thead>\n							<tbody>\n						    <tr data-ng-repeat="configuration in configurations">\n									<td>{{configuration.name}}</td>\n									<td>{{configuration.description}}</td>\n						      <td>\n										<a class="btn default btn-xs blue-stripe" data-ng-href="/freshdesk/view/{{account.id}}/configurations/settings/{{configuration.id}}">\n											{{ \'APPLICATION_SETTINGS\' | translate}}\n						        </a>\n						        <a class="btn default btn-xs red-stripe" data-ng-click="deleteConfiguration(configuration.name,configuration.id)">\n											{{ \'APPLICATION_DELETE\' | translate }}\n						        </a>\n						      </td>\n						    </tr>\n								<tr data-ng-hide="configurations.length">\n									<td colspan="5" style="text-align:center;">\n										<i>No configuration available</i>\n									</td>\n								</tr>\n						  </tbody>\n					</table>\n					<!-- END TABLE -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/freshdesk/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n          <i class="icon-handbag"></i>\n          <a href="/freshdesk/list">{{ \'APPLICATION_FRESHDESK\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{account.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img src="assets/images/media/freshdesk.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{account.name}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{account.remoteUri}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.freshdesk.view.account\')}">\n							<a ng-href="/freshdesk/view/{{account.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.includes(\'main.freshdesk.view.configurations\') || $state.is(\'main.freshdesk.view.configuration\')}">\n							<a ng-href="/freshdesk/view/{{account.id}}/configurations">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/freshdesk/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-handbag"></i>\n						<a href="/freshdesk/list">{{ \'APPLICATION_FRESHDESK\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n						<form name="forms.formSetting" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.username" required ng-remote-validate="/api/freshdesk/accounts/validate/username"/>\n								<span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formSetting.username.$touched || forms.formSetting.$submitted) && forms.formSetting.username.$error.ngRemoteValidate" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n				        </span>\n							</div>\n							<!-- END USERNAME -->\n\n\n              <!-- START REMOTE ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required ng-remote-validate="/api/freshdesk/accounts/validate/remoteUri"/>\n								<span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n                <span data-ng-show="(forms.formSetting.remoteUri.$touched || forms.formSetting.$submitted) && forms.formSetting.remoteUri.$error.ngRemoteValidate" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n				        </span>\n							</div>\n							<!-- END USERNAME -->\n\n              <!-- START API KEY -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.apiKey.$invalid}">\n								<label class="control-label">{{\'APPLICATION_API_KEY\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="apiKey" placeholder="{{\'APPLICATION_API_KEY\' | translate}}" class="form-control" data-ng-model="item.apiKey" required/>\n								<span data-ng-show="forms.formSetting.apiKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END API KEY -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n\n				</wizard>\n\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/integration/list/list.html",'\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-game-controller"></i>\n					<a href="/integrations/list">{{ \'APPLICATION_INTEGRATIONS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered" data-ng-init="initList()">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-eye font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_INTEGRATIONS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n				  <span class="btn green-jungle btn-file">\n            <span> <i class="icon-plus"></i> New App </span>\n            <input type="file" accept=".zip" nv-file-select="" uploader="uploader"/>\n          </span>\n          <a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedIntegrations" filename="integrations.csv">\n					<i class="icon-cloud-download"></i></a>\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedIntegrations" st-safe-src="integrations" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<select class="form-control input-small select2me" data-ng-model="integrationsByPage">\n												<option value="10">10</option>\n												<option value="25">25</option>\n												<option value="50">50</option>\n												<option value="{{integrations.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n											</select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th>\n						    <th st-sort="fullname">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="name">{{ \'APPLICATION_FILENAME\' | translate }}</th>\n								<th st-sort="name">{{ \'APPLICATION_VERSION\' | translate }}</th>\n						    <th st-sort="name">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n						    <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="integration in displayedIntegrations">\n								<td>{{integration.id}}</td>\n								<td>{{integration.name}}</td>\n								<td>{{integration.filename}}</td>\n								<td>{{integration.version}}</td>\n					      <td>{{integration.description}}</td>\n								<td>\n									<span class="btn default btn-xs blue-stripe btn-file">\n				            <span> {{ \'APPLICATION_UPDATE\' | translate }} </span>\n				            <input type="file" accept=".zip" nv-file-select="" uploader="uploader"/>\n				          </span>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(integration.name, integration.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="integrations.length">\n								<td colspan="6" style="text-align:center;">\n									<i>No integrations available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="id" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="filename" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FILENAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n						    </td>\n								<td>\n						    </td>\n								<td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="integrationsByPage" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-clock"></i>\n					<a href="/intervals/list">{{ \'APPLICATION_INTERVALS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-clock font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_INTERVALS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="intervals.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_INTERVAL\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/intervals/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getIntervals([\'name\'])" csv-header="[\'Name\']" field-separator=";" filename="intervals.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedIntervals" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="3">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.intervalsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="intervalByPage in intervalsByPage | filter: $select.search">\n													<div ng-bind-html="intervalByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(interval, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="interval in displayedIntervals">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="intervals.checked" checklist-value="interval.id"></td>\n								<td>{{interval.name}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/intervals/view/{{interval.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(interval.name,interval.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedIntervals.length">\n								<td colspan="3" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_INTERVALS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="3" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.intervalsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getInterval()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-clock"></i>\n					<a href="/intervals/list">{{ \'APPLICATION_INTERVALS\' | translate }}</a>\n					<i data-ng-show="interval" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="interval">\n					<a href="#">{{interval.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/interval.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{interval.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.intervals.view.settings\')}">\n							<a data-ng-href="/intervals/view/{{interval.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.intervals.view.subintervals\') || $state.is(\'main.intervals.view.subinterval\') || $state.is(\'main.intervals.view.subintervals.settings\')}">\n							<a data-ng-href="/intervals/view/{{interval.id}}/subintervals">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_SUBINTERVALS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_INTERVAL\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateInterval()" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="interval.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/interval/view/view.subinterval.html",'\n<div class="row" data-ng-init="initSubInterval()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_NEW_SUBINTERVAL\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.subinterval.name.$valid)">\n            <form name="forms.subinterval" novalidate>\n\n              <!-- START NAME -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.subinterval.name.$touched || forms.subinterval.$submitted) && forms.subinterval.name.$invalid}">\n                <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="subinterval.name" required/>\n                <span data-ng-show="(forms.subinterval.name.$touched || forms.subinterval.$submitted) && forms.subinterval.name.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END NAME -->\n\n							<!-- START TIME -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                <div class="input-group input-large">\n									<fieldset class="pull-left" ng-disabled="splittedInterval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="splittedInterval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                  <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n									<fieldset ng-disabled="splittedInterval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="splittedInterval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n									<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="splittedInterval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n                </div>\n              </div>\n              <!-- END TIME -->\n\n              <!-- START WEEKDAY -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.wd_from" theme="bootstrap" name="wd_from">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                      {{$translate.instant(weekDay.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.wd_to" theme="bootstrap" name="wd_to">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                      {{$translate.instant(weekDay.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END WEEKDAY -->\n\n              <!-- START MONTHDAY -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.md_from" theme="bootstrap" name="md_from">\n                    <ui-select-match>{{$select.selected}}</ui-select-match>\n                    <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                      {{monthDay}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.md_to" theme="bootstrap" name="md_to">\n                    <ui-select-match>{{$select.selected}}</ui-select-match>\n                    <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                      {{monthDay}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END MONTHDAY -->\n\n              <!-- START MONTH -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.m_from" theme="bootstrap" name="m_from">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                      {{$translate.instant(month.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.m_to" theme="bootstrap" name="m_to">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                      {{$translate.instant(month.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END MONTH -->\n\n\n\n							<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n            </form>\n          </wz-step>\n\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/view/view.subintervalSettings.html",'\n<div class="row" data-ng-init="getSubInterval()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_SUBINTERVAL_SETTINGS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="updateItem()">\n					<div class="profile-usertitle-name">\n						{{subinterval.name}}\n					</div>\n          <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.subinterval.name.$valid)">\n            <form name="forms.subinterval" novalidate>\n\n              <!-- START NAME -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.subinterval.name.$touched || forms.subinterval.$submitted) && forms.subinterval.name.$invalid}">\n                <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="subinterval.name" required/>\n                <span data-ng-show="(forms.subinterval.name.$touched || forms.subinterval.$submitted) && forms.subinterval.name.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END NAME -->\n\n              <!-- START TIME -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                <div class="input-group input-large">\n									<fieldset class="pull-left" ng-disabled="splittedInterval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="splittedInterval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                  <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n									<fieldset ng-disabled="splittedInterval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="splittedInterval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n									<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="splittedInterval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n                </div>\n              </div>\n              <!-- END TIME -->\n\n              <!-- START WEEKDAY -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.wd_from" theme="bootstrap" name="wd_from">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                      {{$translate.instant(weekDay.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.wd_to" theme="bootstrap" name="wd_to">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                      {{$translate.instant(weekDay.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END WEEKDAY -->\n\n              <!-- START MONTHDAY -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.md_from" theme="bootstrap" name="md_from">\n                    <ui-select-match>{{$select.selected}}</ui-select-match>\n                    <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                      {{monthDay}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.md_to" theme="bootstrap" name="md_to">\n                    <ui-select-match>{{$select.selected}}</ui-select-match>\n                    <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                      {{monthDay}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END MONTHDAY -->\n\n              <!-- START MONTH -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.m_from" theme="bootstrap" name="m_from">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                      {{$translate.instant(month.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.m_to" theme="bootstrap" name="m_to">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                      {{$translate.instant(month.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END MONTH -->\n\n\n\n							<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n            </form>\n          </wz-step>\n\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/interval/view/view.subintervals.html",'<div ui-view class="profile-content">\n<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SUBINTERVALS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/intervals/view/{{interval.id}}/subinterval" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_SUBINTERVAL\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th>{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th>{{ \'APPLICATION_TIME\' | translate }}</th>\n								<th width="20%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody data-ng-model="subIntervals">\n					    <tr data-ng-repeat="subinterval in subIntervals">\n								<td>{{subinterval.name}}</td>\n								<td>{{subinterval.interval}}</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/intervals/view/{{interval.id}}/subintervals/settings/{{subinterval.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(subinterval.name+\' interval\',subinterval.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="subIntervals.length">\n								<td colspan="3" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_SUBINTERVALS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n</div>\n'),a.put("app/interval/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-clock"></i>\n				<a href="/intervals/list">{{ \'APPLICATION_INTERVALS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/intervals/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="getContexts()">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-clock font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_INTERVAL\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.interval.$valid)">\n			    <form name="forms.interval" novalidate>\n\n            <!-- START NAME -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.name.$touched || forms.interval.$submitted) && forms.interval.name.$invalid}">\n              <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n              <span data-ng-show="(forms.interval.name.$touched || forms.interval.$submitted) && forms.interval.name.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END NAME -->\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/login/login.html",'<!-- BEGIN LOGO -->\n<div class="logo">\n	<a href="index.html">\n	<img src="assets/images/logo-big.png" alt=""/>\n	</a>\n</div>\n<!-- END LOGO -->\n<!-- BEGIN LOGIN -->\n<div class="content">\n	<!-- BEGIN LOGIN FORM -->\n	<form class="login-form" name="loginForm" data-ng-show="!flagLogin1" data-ng-submit="login(loginForm)" novalidate>\n		<h3 class="form-title">Sign In</h3>\n		<div class="alert alert-danger" data-ng-class="{\'display-hide\': !loginSubmitted || !errorLogin}">\n			<button class="close" data-close="alert"></button>\n			<span>{{ errorLog ? errorLog : \'Enter any username and password.\'}}</span>\n		</div>\n		<div class="form-group" data-ng-class="{\'has-error\': loginSubmitted && loginForm.name.$invalid}">\n			<label class="control-label">Username</label>\n      <div class="input-icon">\n        <i class="fa fa-user"></i>\n        <input ng-enter="login(loginForm)" class="form-control form-control-solid placeholder-no-fix" type="text" autocomplete="off" placeholder="Username" name="name" ng-model="userLogin.name" required/>\n      </div>\n      <span data-ng-show="loginSubmitted && loginForm.name.$invalid" class="help-block">Username is required.</span>\n		</div>\n		<div class="form-group" data-ng-class="{\'has-error\': loginSubmitted && loginForm.password.$invalid}">\n			<label class="control-label">Password</label>\n      <div class="input-icon">\n        <i class="fa fa-lock"></i>\n        <input ng-enter="login(loginForm)" class="form-control form-control-solid placeholder-no-fix" type="password" autocomplete="off" placeholder="Password" name="password" ng-model="userLogin.password" required/>\n      </div>\n      <span data-ng-show="loginSubmitted && loginForm.password.$invalid" class="help-block">Password is required.</span>\n		</div>\n		<div class="form-actions">\n			<button type="submit" class="btn btn-success uppercase">Login</button>\n      <label class="rememberme check">\n        <input type="checkbox"> Remember me\n      </label>\n			<!-- <label class="rememberme check">\n			<input type="checkbox" name="remember" value="1"/>Remember </label> -->\n			<!-- <a href="javascript:;" id="forget-password" class="forget-password">Forgot Password?</a> -->\n		</div>\n		<div class="login-options">\n			<h4>Follow Us on</h4>\n			<ul class="social-icons">\n				<li>\n					<a class="social-icon-color facebook" data-original-title="facebook" href="https://www.facebook.com/xenialab"></a>\n				</li>\n				<li>\n					<a class="social-icon-color twitter" data-original-title="Twitter" href="https://twitter.com/xenialab"></a>\n				</li>\n				<li>\n					<a class="social-icon-color googleplus" data-original-title="Goole Plus" href="#"></a>\n				</li>\n				<li>\n					<a class="social-icon-color linkedin" data-original-title="Linkedin" href="#"></a>\n				</li>\n			</ul>\n		</div>\n	</form>\n</div>\n<div class="copyright">\n	 2016 © xCALLY MOTION.\n</div>\n<!-- END LOGIN -->\n'),a.put("app/mail/account/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-notebook"></i>\n						<a href="#">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="mailAccounts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/mail/accounts/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getMailAccounts([\'name\', \'description\', {MailServerIn:\'username\'}])" csv-header="[\'Name\', \'Description\', \'Email Address\']" field-separator=";" filename="mail_accounts.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedMailAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n				  <thead>\n						<tr>\n							<th colspan="7">\n								<div class="row">\n									<div class="col-md-6">\n										<ui-select class="input-xsmall" ng-model="conf.mailAccountsByPage" theme="bootstrap" ng-disabled="disabled">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="mailAccountByPage in mailAccountsByPage | filter: $select.search">\n												<div ng-bind-html="mailAccountByPage.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n									</div>\n									<div class="col-md-6">\n										<div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div>\n									</div>\n								</div>\n							</th>\n						</tr>\n					  <tr>\n							<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(mailAccount, checked)" checklist-model checklist-value="id"></th>\n					    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n							<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n							<th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n							<th>IMAP</th>\n							<th>SMTP</th>\n							<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n					  </tr>\n				  </thead>\n				  <tbody>\n				    <tr data-ng-repeat="mailAccount in displayedMailAccounts">\n							<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mailAccounts.checked" checklist-value="mailAccount.id"></td>\n				      <td>{{mailAccount.name}}</td>\n							<td>{{mailAccount.description}}</td>\n							<td><a ng-href="mailto:{{mailAccount.MailServerIn.username}}">{{mailAccount.MailServerIn.username}}</a></td>\n							<td data-ng-switch="mailAccount.MailServerIn.state">\n								<span class="label label-sm label-success" ng-switch-when="CONNECTED">\n									{{ mailAccount.MailServerIn.state}}\n								</span>\n								<span class="label label-sm label-warning" ng-switch-when="DISCONNECTED">\n									{{ mailAccount.MailServerIn.state}}\n								</span>\n								<span class="label label-sm label-danger" ng-switch-when="ERROR">\n									{{ mailAccount.MailServerIn.state}}\n								</span>\n								<span class="label label-sm label-default" ng-switch-default>\n									{{ mailAccount.MailServerIn.state}}\n								</span>\n							</td>\n							<td data-ng-switch="mailAccount.MailServerOut.state">\n								<span class="label label-sm label-success" ng-switch-when="CONNECTED">\n									{{ mailAccount.MailServerOut.state}}\n								</span>\n								<span class="label label-sm label-warning" ng-switch-when="DISCONNECTED">\n									{{ mailAccount.MailServerOut.state}}\n								</span>\n								<span class="label label-sm label-danger" ng-switch-when="ERROR">\n									{{ mailAccount.MailServerOut.state}}\n								</span>\n								<span class="label label-sm label-default" ng-switch-default>\n									{{ mailAccount.MailServerOut.state}}\n								</span>\n							</td>\n				      <td>\n				        <a class="btn default btn-xs blue-stripe" data-ng-href="/mail/accounts/view/{{mailAccount.id}}/settings">\n									{{ \'APPLICATION_PROFILE\' | translate }}\n				        </a>\n				        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(mailAccount.name, mailAccount.id)">\n									{{ \'APPLICATION_DELETE\' | translate }}\n				        </a>\n				      </td>\n				    </tr>\n						<tr data-ng-hide="displayedMailAccounts.length">\n							<td colspan="7" class="text-center">\n							<i>{{ \'MESSAGE_NO_AVAILABLE_ACCOUNTS\' | translate }}</i>\n							</td>\n						</tr>\n				  </tbody>\n				  <tfoot>\n						<tr>\n							<td/>\n					    <td>\n								<div class="input-icon right">\n									<i class="fa fa-search"></i>\n									<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n								</div>\n					    </td>\n							<td>\n								<div class="input-icon right">\n									<i class="fa fa-search"></i>\n									<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n								</div>\n					    </td>\n					    <td colspan="4"/>\n					  </tr>\n						<tr>\n							<td colspan="7" class="text-center">\n								<div class="pagination" st-pagination st-items-by-page="conf.mailAccountsByPage.value" st-displayed-pages="7"></div>\n							</td>\n						</tr>\n				  </tfoot>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/account/view/action/list/list.html",'<div class="row" data-ng-init="initActons()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/mail/accounts/view/{{account.id}}/actions/wizard" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACTION\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th class="input-small" align="center">{{\'APPLICATION_APPLICATION\' | translate}}</th>\n								<th class="input-small" align="center">{{\'APPLICATION_TIMEOUT\' | translate}} [s]</th>\n						    <th align="center">{{ \'APPLICATION_INTERVAL\' | translate }}</th>\n								<th class="input-small">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody ui-sortable="sortableOptions" data-ng-model="mailApplications">\n					    <tr data-ng-repeat="application in mailApplications">\n								<td align="center">\n									{{application.User ? \'agent\' : \'queue\' | uppercase}} [{{application.User ? application.User.fullname : application.MailQueue.name}}]\n								</td>\n								<td align="center">{{application.timeout}}</td>\n								<td align="center">{{application.Interval ? application.Interval.name : application.interval}}</td>\n								<td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/mail/accounts/view/{{account.id}}/actions/view/{{application.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app, application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="mailApplications.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No applications available</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/account/view/action/view/view.html",'\n<div class="row" data-ng-init="initAction()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-directions font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.settings" ng-submit="updateItem()" novalidate>\n					<!-- START APP -->\n					<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n						<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n						<ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n							<ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n							<ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n								<div ng-bind-html="app.name | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n						<span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END APP -->\n\n					<!-- START HOST -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n						<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n						<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n						<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END HOST -->\n\n					<div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n						<!-- START QUEUE -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n							<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="application.MailQueueId" name="queue" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n								<ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n									<div ng-bind-html="queue.name | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END QUEUE -->\n					</div>\n\n					<div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n						<!-- START AGENT -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$invalid}">\n							<label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n								<ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n									<div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END AGENT -->\n					</div>\n\n					<!-- START INTERVAL_TYPE -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$invalid}">\n						<label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n						<ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n							<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n							<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n								{{ intType.name | translate }}\n							</ui-select-choices>\n						</ui-select>\n						<span data-ng-show="(forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END INTERVAL_TYPE -->\n\n					<div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n						<!-- START TIME -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n							<div class="input-group input-large">\n								<fieldset class="pull-left" ng-disabled="application.alwaysTime">\n									<uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n								</fieldset>\n								<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n								<fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n								<!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n							</div>\n						</div>\n						<!-- END TIME -->\n\n						<!-- START ALWAYS -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n							<div class="input-group input-large">\n								<label class="control-label pointer-cursor">\n									<input\n										bs-switch\n										data-ng-model="application.alwaysTime"\n										type="checkbox"\n										switch-active="{{ isActive }}"\n										switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n										switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n										switch-on-color="{{ onColor }}"\n										switch-off-color="{{ offColor }}"\n										switch-animate="{{ animate }}"\n										switch-size="{{ size }}"\n										switch-label="{{ label }}"\n										switch-icon="{{ icon }}"\n										switch-radio-off="{{ radioOff }}"\n										switch-label-width="{{ labelWidth }}"\n										switch-handle-width="{{ handleWidth }}">\n									<!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n								</label>\n							</div>\n						</div>\n						<!-- END ALWAYS -->\n\n						<!-- START WEEKDAY -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n										{{ weekDay.name | translate}}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n										{{ weekDay.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END WEEKDAY -->\n\n						<!-- START MONTHDAY -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n									<ui-select-match>{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n										{{monthDay}}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n									<ui-select-match>{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n										{{monthDay}}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END MONTHDAY -->\n\n						<!-- START MONTH -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n										{{ month.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n										{{ month.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END MONTH -->\n					</div>\n\n					<div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n						<!-- START INTERVALS -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$invalid}">\n							<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n								<ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n									{{ interval.name}}\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END INTERVALS -->\n\n					</div>\n					<button class="btn green-haze" type="submit">{{\'APPLICATION_UPDATE\' | translate}}</button>\n				</form>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/account/view/action/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-directions font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.action.$valid)">\n						<form name="forms.action" novalidate>\n							<!-- START APP -->\n							<div class="form-group"  data-ng-class="{\'has-error\': forms.action.$submitted && forms.action.app.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n									<ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n										<div ng-bind-html="app.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.action.$submitted && forms.action.app.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END APP -->\n\n							<!-- START HOST -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n								<span data-ng-show="(forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid && forms.action.timeout.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END HOST -->\n\n							<div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n								<!-- START QUEUE -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$invalid}">\n									<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.MailQueueId" name="queue" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n											<div ng-bind-html="queue.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END QUEUE -->\n							</div>\n\n							<div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n								<!-- START AGENT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$invalid}">\n									<label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n										<ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n											<div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END AGENT -->\n							</div>\n\n							<!-- START INTERVAL_TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n										{{ intType.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="(forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERVAL_TYPE -->\n\n							<div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n								<!-- START TIME -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n									<div class="input-group input-large">\n										<fieldset class="pull-left" ng-disabled="application.alwaysTime">\n											<uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n										</fieldset>\n										<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n										<fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n										<!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n									</div>\n								</div>\n								<!-- END TIME -->\n\n								<!-- START ALWAYS -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n									<div class="input-group input-large">\n										<label class="control-label pointer-cursor">\n											<input\n												bs-switch\n												data-ng-model="application.alwaysTime"\n												type="checkbox"\n												switch-active="{{ isActive }}"\n												switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n												switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n												switch-on-color="{{ onColor }}"\n												switch-off-color="{{ offColor }}"\n												switch-animate="{{ animate }}"\n												switch-size="{{ size }}"\n												switch-label="{{ label }}"\n												switch-icon="{{ icon }}"\n												switch-radio-off="{{ radioOff }}"\n												switch-label-width="{{ labelWidth }}"\n												switch-handle-width="{{ handleWidth }}">\n											<!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n										</label>\n									</div>\n								</div>\n								<!-- END ALWAYS -->\n\n								<!-- START WEEKDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{ weekDay.name | translate}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{ weekDay.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END WEEKDAY -->\n\n								<!-- START MONTHDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTHDAY -->\n\n								<!-- START MONTH -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{ month.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{ month.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTH -->\n							</div>\n\n							<div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n								<!-- START INTERVALS -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n											{{ interval.name}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVALS -->\n\n							</div>\n\n							<input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONTINUE\' | translate}}"/>\n						</form>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<!-- <button class="btn green-haze" type="button" wz-previous><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button> -->\n						<input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/mail/account/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="/">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-notebook"></i>\n					<a href="/mail/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="account"></i>\n				</li>\n				<li data-ng-show="account">\n					<a href="#">{{ account.description || account.name }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img ng-src="assets/images/media/account.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ account.description || account.name }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{account.email}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li ng-class="{active: $state.is(\'main.mail.accounts.view.settings\')}">\n							<a href="/mail/accounts/view/{{account.id}}/settings">\n							<i class="icon-settings"></i>\n							{{\'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li ng-class="{active: $state.includes(\'main.mail.accounts.view.actions\')}">\n							<a href="/mail/accounts/view/{{account.id}}/actions/list">\n							<i class="icon-directions"></i>\n							{{\'APPLICATION_ACTIONS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<div ui-view class="profile-content"></div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n<!-- END PAGE CONTENT-->\n</div>\n'),a.put("app/mail/account/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">IMAP</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">SMTP</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.formInfo" data-ng-submit="forms.formInfo.$valid && updateItemMailAccount()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formInfo.name.$touched || forms.formInfo.$submitted) && forms.formInfo.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n								<span data-ng-show="(forms.formInfo.name.$touched || forms.formInfo.$submitted) && forms.formInfo.name.$invalid && forms.formInfo.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n					<!-- IMAP TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<form name="forms.formIn" data-ng-submit="forms.formIn.$valid && updateItemMailServerIn()" novalidate>\n							<!-- START PROTOCOL -->\n							<!-- <div class="form-group">\n								<label class="control-label">IMAP/POP3</label>\n								<button type="button" name="protocol" class="btn btn-default form-control" data-ng-model="account.MailServerIn.protocol" bs-checkbox>{{account.MailServerIn.protocol ? \'IMAP\' : \'POP3\'}}</button>\n							</div> -->\n							<!-- END PROTOCOL -->\n\n							<!-- START HOST -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.host.$touched || forms.formIn.$submitted) && forms.formIn.host.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.host" required/>\n								<span data-ng-show="(forms.formIn.host.$touched || forms.formIn.$submitted) && forms.formIn.host.$invalid && forms.formIn.host.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END HOST -->\n\n							<!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.username.$touched || forms.formIn.$submitted) && forms.formIn.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.username" required/>\n								<span data-ng-show="(forms.formIn.username.$touched || forms.formIn.$submitted) && forms.formIn.username.$invalid && forms.formIn.username.$error.required"  class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.password.$touched || forms.formIn.$submitted) && forms.formIn.password.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.password" required/>\n								<span data-ng-show="(forms.formIn.password.$touched || forms.formIn.$submitted) && forms.formIn.password.$invalid && forms.formIn.password.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n							<!-- START PORT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.port.$touched || forms.formIn.$submitted) && forms.formIn.port.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.port" required/>\n								<span data-ng-show="(forms.formIn.port.$touched || forms.formIn.$submitted) && forms.formIn.port.$invalid && forms.formIn.port.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formIn.port.$touched || forms.formIn.$submitted) && forms.formIn.port.$invalid && forms.formIn.port.$error.number" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PORT -->\n\n							<!-- START MAILBOX -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}</label>\n								<input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.mailbox"/>\n							</div>\n							<!-- END MAILBOX -->\n\n							<!-- START SEARCH FILTER -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_SEARCH_FILTER\' | translate}}</label>\n								<ui-select data-ng-model="account.MailServerIn.filter" name="filter" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="filter in [\'UNSEEN\'] | filter: $select.search">\n										<div ng-bind-html="filter | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n							</div>\n							<!-- START SEARCH FILTER -->\n\n							<!-- START DELETE -->\n							<div class="form-group row">\n								<label class="col-md-3">\n									{{\'APPLICATION_DELETE_MAIL_FROM_SERVER\' | translate}}\n								</label>\n								<label class="col-md-9">\n									<input type="checkbox" ng-model="account.MailServerIn.delete">\n								</label>\n							</div>\n							<!-- END DELETE -->\n\n							<!-- START SSL -->\n							<div class="form-group row">\n								<label class="col-md-3">\n									SSL\n								</label>\n								<label class="col-md-9">\n										<input type="checkbox" data-ng-model="account.MailServerIn.ssl">\n								</label>\n							</div>\n							<!-- END SSL -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END IMAP TAB -->\n\n					<!-- SMTP TAB -->\n					<div class="tab-pane" id="tab_1_3">\n						<form name="forms.formOut" data-ng-submit="forms.formOut.$valid && updateItemMailServerOut()" novalidate>\n\n							<!-- START HOST -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.host.$touched || forms.formOut.$submitted) && forms.formOut.host.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.host" required/>\n								<span data-ng-show="(forms.formOut.host.$touched || forms.formOut.$submitted) && forms.formOut.host.$invalid && forms.formOut.host.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END HOST -->\n\n							<!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.username.$touched || forms.formOut.$submitted) && forms.formOut.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.username" required/>\n								<span data-ng-show="(forms.formOut.username.$touched || forms.formOut.$submitted) && forms.formOut.username.$invalid && forms.formOut.username.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.password.$touched || forms.formOut.$submitted) && forms.formOut.password.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.password" required/>\n								<span data-ng-show="(forms.formOut.password.$touched || forms.formOut.$submitted) && forms.formOut.password.$invalid && forms.formOut.password.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n							<!-- START PORT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.port.$touched || forms.formOut.$submitted) && forms.formOut.port.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.port" required/>\n								<span data-ng-show="(forms.formOut.form.$touched || forms.formOut.$submitted) && forms.formOut.port.$invalid && forms.formOut.port.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formOut.form.$touched || forms.formOut.$submitted) && forms.formOut.port.$invalid && forms.formOut.port.$error.number" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PORT -->\n\n							<!-- START SSL -->\n							<div class="form-group row">\n								<label class="col-md-3">\n									SSL\n								</label>\n								<label class="col-md-9">\n										<input type="checkbox" data-ng-model="account.MailServerOut.ssl">\n								</label>\n							</div>\n							<!-- END SSL -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n							<input class="btn blue-madison" type="button" value="Test" data-ng-click="test()"/>\n						</form>\n					</div>\n					<!-- END SMTP TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/account/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN PAGE HEADER-->\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-notebook"></i>\n					<a href="/mail/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n		<!-- END PAGE HEADER-->\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n	        <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="formValidation(forms.info.$valid)">\n							<form name="forms.info" novalidate>\n								<!-- START NAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n									<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="info.name" required/>\n									<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END NAME -->\n\n								<!-- START DESCRIPTION -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n									<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="info.description"/>\n								</div>\n								<!-- END DESCRIPTION -->\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n							</form>\n						</wz-step>\n\n						<wz-step title="IMAP" canexit="formValidation(forms.in.$valid)">\n							<form name="forms.in" novalidate>\n								<!-- START PROTOCOL -->\n								<!-- <div class="form-group">\n									<label class="control-label">IMAP/POP3</label>\n									<button type="button" name="protocol" class="btn btn-default form-control" data-ng-model="in.protocol" bs-checkbox>{{in.protocol ? \'IMAP\' : \'POP3\'}}</button>\n								</div> -->\n								<!-- END PROTOCOL -->\n\n								<!-- START HOST -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.in.host.$touched || forms.in.$submitted) && forms.in.host.$invalid}">\n									<label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n									<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="in.host" required/>\n									<span data-ng-show="(forms.in.host.$touched || forms.in.$submitted) && forms.in.host.$invalid && forms.in.host.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END HOST -->\n\n								<!-- START USERNAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.in.username.$touched || forms.in.$submitted) && forms.in.username.$invalid}">\n									<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="in.username" name="username" required/>\n									<span data-ng-show="(forms.in.username.$touched || forms.in.$submitted) && forms.in.username.$invalid && forms.in.username.$error.required"  class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END USERNAME -->\n\n								<!-- START PASSWORD -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.in.password.$touched || forms.in.$submitted) && forms.in.password.$invalid}">\n									<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="in.password" required/>\n									<span data-ng-show="(forms.in.password.$touched || forms.in.$submitted) && forms.in.password.$invalid && forms.in.password.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END PASSWORD -->\n\n								<!-- START PORT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid}">\n									<label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="in.port" required/>\n									<span data-ng-show="(forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid && forms.in.port.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n									<span data-ng-show="(forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid && forms.in.port.$error.number" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END PORT -->\n\n								<!-- START MAILBOX -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}</label>\n									<input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="in.mailbox"/>\n								</div>\n								<!-- END MAILBOX -->\n\n								<!-- START SEARCH FILTER -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_SEARCH_FILTER\' | translate}}</label>\n									<ui-select data-ng-model="in.filter" name="filter" theme="bootstrap">\n				            <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n				            <ui-select-choices repeat="filter in [\'UNSEEN\'] | filter: $select.search">\n				              <div data-ng-bind="filter | highlight: $select.search"></div>\n				            </ui-select-choices>\n				          </ui-select>\n									<!-- <input type="text" name="filter" placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}" class="form-control" data-ng-model="in.filter"/> -->\n								</div>\n								<!-- START SEARCH FILTER -->\n\n								<!-- START DELETE -->\n								<div class="form-group row">\n									<label class="col-md-3">\n										{{\'APPLICATION_DELETE_MAIL_FROM_SERVER\' | translate}}\n									</label>\n									<label class="col-md-9">\n											<input type="checkbox" data-ng-model="in.delete">\n									</label>\n								</div>\n								<!-- END DELETE -->\n\n								<!-- START SSL -->\n								<div class="form-group row">\n									<label class="col-md-3">\n										SSL\n									</label>\n									<label class="col-md-9">\n											<input type="checkbox" data-ng-model="in.ssl">\n									</label>\n								</div>\n								<!-- END SSL -->\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n							</form>\n						</wz-step>\n						<wz-step title="SMTP" canexit="formValidation(forms.out.$valid)">\n							<form name="forms.out" novalidate>\n\n								<!-- START HOST -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.out.host.$touched || forms.out.$submitted) && forms.out.host.$invalid}">\n									<label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n									<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="out.host" required/>\n									<span data-ng-show="(forms.out.host.$touched || forms.out.$submitted) && forms.out.host.$invalid && forms.out.host.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END HOST -->\n\n								<!-- START USERNAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.out.username.$touched || forms.out.$submitted) && forms.out.username.$invalid}">\n									<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="out.username" required/>\n									<span data-ng-show="(forms.out.username.$touched || forms.out.$submitted) && forms.out.username.$invalid && forms.out.username.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END USERNAME -->\n\n								<!-- START PASSWORD -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.out.password.$touched || forms.out.$submitted) && forms.out.password.$invalid}">\n									<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="out.password" required/>\n									<span data-ng-show="(forms.out.password.$touched || forms.out.$submitted) && forms.out.password.$invalid && forms.out.password.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END PASSWORD -->\n\n								<!-- START PORT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.out.port.$touched || forms.out.$submitted) && forms.out.port.$invalid}">\n									<label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="out.port" required/>\n									<span data-ng-show="(out.$touched || forms.out.$submitted) && forms.out.port.$invalid && forms.out.port.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n									<span data-ng-show="(out.$touched || forms.out.$submitted) && forms.out.port.$invalid && forms.out.port.$error.number" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END PORT -->\n\n								<!-- START SSL -->\n								<div class="form-group row">\n									<label class="col-md-3">\n										SSL\n									</label>\n									<label class="col-md-9">\n											<input type="checkbox" data-ng-model="out.ssl">\n									</label>\n								</div>\n								<!-- END DELETE -->\n\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n								<input class="btn default" type="button" value="{{\'APPLICATION_BACK\' | translate}}" wz-previous/>\n							</form>\n						</wz-step>\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/automation/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-settings"></i>\n						<a href="#">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-settings font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="mailAutomations.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_AUTOMATION\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/mail/automations/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getMailAutomations([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="mail_automations.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedMailAutomations" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.mailAutomationsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="mailAutomationByPage in mailAutomationsByPage | filter: $select.search">\n													<div ng-bind-html="mailAutomationByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(mailAutomation, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="mailAutomation in displayedMailAutomations">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mailAutomations.checked" checklist-value="mailAutomation.id"></td>\n					      <td>{{mailAutomation.name}}</td>\n								<td>{{mailAutomation.description}}</td>\n								<td>\n									<input\n										data-ng-change="updateItem(mailAutomation.id, mailAutomation.status)",\n								    bs-switch\n								    ng-model="mailAutomation.status"\n								    type="checkbox"\n								    switch-active="{{ isActive }}"\n								    switch-on-text="{{ onText }}"\n								    switch-off-text="{{ offText }}"\n								    switch-on-color="{{ onColor }}"\n								    switch-off-color="{{ offColor }}"\n								    switch-animate="{{ animate }}"\n								    switch-size="{{ size }}"\n								    switch-label="{{ label }}"\n								    switch-icon="{{ icon }}"\n								    switch-radio-off="{{ radioOff }}"\n								    switch-label-width="{{ labelWidth }}"\n								    switch-handle-width="{{ handleWidth }}">\n								</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/mail/automations/view/{{mailAutomation.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(mailAutomation.name, mailAutomation.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedMailAutomations.length">\n								<td colspan="6" class="text-center">\n									<i>No available automations</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.mailAutomationsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/mail/automation/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="/">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/mail/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="automation"></i>\n				</li>\n				<li data-ng-show="automation">\n					<a href="#">{{ automation.description || automation.name }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/automation.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ automation.name }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{automation.description}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.mail.automations.view.settings\')}">\n							<a href="/mail/automations/view/{{automation.id}}/settings">\n							<i class="icon-settings"></i>\n							{{\'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/automation/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">OR {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">AND {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_4" data-toggle="tab">{{\'APPLICATION_ACTIONS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.info" data-ng-submit="forms.info.$valid && updateAutomation()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="automation.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="automation.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n					<!-- IMAP TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewCondition(\'or\')">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'or\'}">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.condition" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n													<div data-ng-bind="condition.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.operator" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="operator.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-4" data-ng-switch="condition.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="condition.attribute" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n										</div>\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeCondition(condition.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessConditions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n					</div>\n					<!-- END IMAP TAB -->\n\n					<div class="tab-pane" id="tab_1_3">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewCondition(\'and\')">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'and\'}">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.condition" name="conditionAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n													<div data-ng-bind="condition.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.operator" name="operatorAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="operator.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-4" data-ng-switch="condition.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="condition.attribute" name="attributeAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" data-ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n											<span data-ng-show="forms.and.attributeAnd{{$index}}.$invalid && forms.and.attributeAnd{{$index}}.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeCondition(condition.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessConditions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n					</div>\n\n					<!-- SMTP TAB -->\n					<div class="tab-pane" id="tab_1_4">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewAction()">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="action in automation.BusinessActions">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="action.condition" theme="bootstrap" on-select="updateAction(action.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="action.key as action in automations.actions | filter: $select.search">\n													<div data-ng-bind="action.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3" data-ng-switch="action.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="action.attribute" theme="bootstrap" on-select="updateAction(action.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(action.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" data-ng-model="action.attribute" data-ng-blur="updateAction(action.id, \'attribute\', action.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n										</div>\n									</div>\n									<div class="col-md-4">\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeAction(action.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessActions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n\n					</div>\n					<!-- END SMTP TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/automation/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN PAGE HEADER-->\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/mail/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n		<!-- END PAGE HEADER-->\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-settings font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n	        <wz-step title="{{\'APPLICATION_NEW_AUTOMATION\' | translate}}" canexit="formValidation(forms.automation.$valid)">\n						<form name="forms.automation" novalidate>\n							<div class="row">\n								<div class="col-md-12">\n									<div class="form-group" data-ng-class="{\'has-error\': forms.automation.name.$invalid && forms.automation.$submitted}">\n										<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<input class="form-control" type="text" name="name" value="" data-ng-model="automations.name" required>\n										<span data-ng-show="forms.automation.name.$invalid && forms.automation.name.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n\n									<div class="form-group" data-ng-class="{\'has-error\': forms.automation.description.$invalid && forms.automation.$submitted}">\n										<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n										<input class="form-control" type="text" name="description" value="" data-ng-model="automations.description">\n										<span data-ng-show="forms.automation.description.$invalid && forms.automation.description.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<hr>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'or\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-user"></i>\n									<span class="caption-subject">Meet <strong>any</strong> of the following conditions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.or">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionOr{{$index}}.$invalid && forms.automation.$submitted && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].condition" name="conditionOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="condition in automations.or[$index].conditions | filter: $select.search">\n														<div data-ng-bind="condition.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.conditionOr{{$index}}.$invalid && forms.automation.conditionOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorOr{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].operator" name="operatorOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="operator.key as operator in automations.or[$index].condition.operators | filter: $select.search">\n														<div data-ng-bind="operator.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.operatorOr{{$index}}.$invalid && forms.automation.operatorOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4" data-ng-switch="automations.or[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].attribute" name="attributeOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.or[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number">\n												<input class="form-control" type="text" min="0" name="attributeOr{{$index}}" value="" data-ng-model="automations.or[$index].attribute" required>\n												<span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'or\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.or.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add condition</i>\n								</div>\n							</div>\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'and\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-people"></i>\n									<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.and">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].condition" name="conditionAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="condition in automations.and[$index].conditions | filter: $select.search">\n														<div data-ng-bind="condition.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.conditionAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].operator" name="operatorAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="operator.key as operator in automations.and[$index].condition.operators | filter: $select.search">\n														<div data-ng-bind="operator.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.operatorAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4" data-ng-switch="automations.and[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].attribute" name="attributeAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.and[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number">\n												<input class="form-control" type="text" min="0" name="attributeAnd{{$index}}" value="" data-ng-model="automations.and[$index].attribute" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid}" required>\n												<span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'and\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.and.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add condition</i>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'actions\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-magic-wand"></i>\n									<span class="caption-subject">Perform these actions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.actions">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.actions.conditionAction{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.actions[$index].condition" name="conditionAction{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="action in automations.actions[$index].actions | filter: $select.search">\n														<div data-ng-bind="action.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.actions.conditionAction{{$index}}.$invalid && forms.actions.conditionAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3" data-ng-switch="automations.actions[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.actions[$index].attribute" name="attributeAction{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.actions[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid}">\n												<input class="form-control" type="text" min="0" name="attributeAction{{$index}}" value="" data-ng-model="automations.actions[$index].attribute" required>\n												<span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4">\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'actions\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.actions.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add action</i>\n								</div>\n							</div>\n							<div class="row">\n								<div class="col-md-12">\n									<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n								</div>\n							</div>\n						</form>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/mail/inbox/compose/compose.html",'<form class="inbox-compose form-horizontal" id="fileupload" enctype="multipart/form-data" data-ng-init="getMessage()">\n	<pre>\n		{{mailAccounts | json}}\n	</pre>\n	<div class="inbox-compose-btn">\n		<button data-ng-click="sendMailMessage()" class="btn blue"><i class="fa fa-check"></i>{{\'APPLICATION_SEND\' | translate}}</button>\n		<button class="btn inbox-discard-btn" data-ng-click="discard()">{{\'APPLICATION_DISCARD\' | translate}}</button>\n		<button class="btn" data-ng-click="saveMessageAsDraft()">{{\'APPLICATION_SAVE_AS_DRAFT\' | translate}}</button>\n		<span class="message-info"><i>{{form.message}}</i></span>\n	</div>\n	<div class="inbox-form-group">\n		<label class="control-label">{{\'APPLICATION_FROM\' | translate}}: </label>\n		<div class="controls">\n			<ui-select data-ng-model="form.body.from" theme="bootstrap">\n        <ui-select-match placeholder="Select an account">{{$select.selected.name}} <{{$select.selected.address}}></ui-select-match>\n        <ui-select-choices repeat="account in mailAccounts | filter: $select.search">\n          <div ng-bind-html="account.name | highlight: $select.search"></div>\n          <small ng-bind-html="account.address | highlight: $select.search"></small>\n        </ui-select-choices>\n      </ui-select>\n		</div>\n	</div>\n	<div class="inbox-form-group mail-to">\n		<label class="control-label">{{\'APPLICATION_TO\' | translate}}: </label>\n		<div class="controls controls-to">\n			<input type="text" class="form-control" name="to" data-ng-model="form.body.to.address">\n			<span class="inbox-cc-bcc">\n			<span class="inbox-cc" data-ng-show="!flagCC" data-ng-click="switchFlagCC()">\n			Cc </span>\n			<span class="inbox-bcc" data-ng-show="!flagBCC" data-ng-click="switchFlagBCC()">\n			{{\'APPLICATION_BCC\' | translate}} </span>\n			</span>\n		</div>\n	</div>\n	<div class="inbox-form-group input-cc" data-ng-class="{\'display-hide\': !flagCC}">\n		<a href="javascript:;" class="close" data-ng-click="switchFlagCC()">\n		</a>\n		<label class="control-label">Cc:</label>\n		<div class="controls controls-cc">\n			<input type="text" name="cc" class="form-control" data-ng-model="form.body.cc.address">\n		</div>\n	</div>\n	<div class="inbox-form-group input-bcc" data-ng-class="{\'display-hide\': !flagBCC}">\n		<a href="javascript:;" class="close" data-ng-click="switchFlagBCC()">\n		</a>\n		<label class="control-label">{{\'APPLICATION_BCC\' | translate}}:</label>\n		<div class="controls controls-bcc">\n			<input type="text" name="bcc" class="form-control" data-ng-model="form.body.bcc.address">\n		</div>\n	</div>\n	<div class="inbox-form-group">\n		<label class="control-label">{{\'APPLICATION_SUBJECT\' | translate}}: </label>\n		<div class="controls">\n			<input type="text" class="form-control" name="subject" data-ng-model="form.subject">\n		</div>\n	</div>\n	<div class="inbox-form-group">\n		<div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html"></div>\n	</div>\n	<div class="inbox-compose-btn">\n		<button data-ng-click="sendMailMessage()" class="btn blue"><i class="fa fa-check"></i>{{\'APPLICATION_SEND\' | translate}}</button>\n		<button class="btn" data-ng-click="discard()">{{\'APPLICATION_DISCARD\' | translate}}</button>\n		<button class="btn" data-ng-click="saveMessageAsDraft()">{{\'APPLICATION_DRAFT\' | translate}}</button>\n	</div>\n</form>\n'),a.put("app/mail/inbox/inbox.html",'<!-- BEGIN PAGE CONTENT-->\n<!-- <div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_MAILS\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-note"></i>\n					<a href="/mail/inbox/incoming">{{ \'APPLICATION_INBOX\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n	</div>\n</div> -->\n<!-- END PAGE CONTENT-->\n<div class="row inbox">\n	<div class="col-md-12" ui-view>\n	</div>\n</div>\n'),a.put("app/mail/inbox/incoming/incoming.html",'<div class="row inbox">\n	<div class="col-md-12">\n		<div class="inbox-header">\n			<h1 class="pull-left">Inbox</h1>\n			<form class="form-inline pull-right" action="#">\n				<!-- <div class="input-group input-medium">\n					<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search">\n					<span class="input-group-btn">\n					<button type="submit" class="btn green"><i class="fa fa-search"></i></button>\n					</span>\n				</div> -->\n			</form>\n		</div>\n		<div class="inbox-content">\n			<table class="table table-striped table-advance table-hover" st-table="displayedMailRooms" st-pipe="initList">\n				<thead>\n					<tr>\n						<th colspan="9">\n							<input type="checkbox" ng-change="check(null, checked)" checklist-model checklist-value="id">\n							<div class="btn-group">\n								<a data-ng-href="/mail/inbox/compose" class="btn btn-sm blue">\n									<i class="icon-plus"></i> {{\'APPLICATION_NEW_MESSAGE\' | translate}}\n								</a>\n							</div>\n							<div class="btn-group" data-ng-show="mailRooms.checked.length">\n								<a href="#" class="btn btn-sm red" data-ng-click="deleteItems()">\n									<i class="icon-trash"></i> {{\'APPLICATION_DELETE\' | translate}}\n								</a>\n							</div>\n							<div class="input-group input-medium pull-right">\n								<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n								<span class="input-group-addon">\n									<i class="fa fa-search"></i>\n								</span>\n							</div>\n						</th>\n						<!-- <th class="pagination-control" colspan="7"> -->\n							<!-- <span class="pagination-info">\n							1-30 of 789 </span>\n							<a class="btn btn-sm blue">\n							<i class="fa fa-angle-left"></i>\n							</a>\n							<a class="btn btn-sm blue">\n							<i class="fa fa-angle-right"></i>\n							</a> -->\n						<!-- </th> -->\n					</tr>\n				</thead>\n				<tbody>\n					<tr data-messageid="1" data-ng-repeat="mailRoom in displayedMailRooms" class="animate-repeat">\n						<td class="inbox-small-cells">\n							<input type="checkbox" checklist-model="mailRooms.checked" checklist-value="mailRoom.id">\n						</td>\n						<td class="inbox-small-cells" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n							#{{mailRoom.id}}\n						</td>\n						<td class="view-message hidden-xs" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n						 {{mailRoom.subject}}\n						</td>\n						<td class="view-message" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n							{{mailRoom.from}}\n						</td>\n						<td class="view-message" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n							{{mailRoom.MailAccount.description ? mailRoom.MailAccount.description : mailRoom.MailAccount.name || \'APPLICATION_UNKNOWN\' | translate | uppercase}}\n						</td>\n						<td class="view-message" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n							<span class="badge badge-success badge-roundless" data-ng-show="mailRoom.User.fullname"> {{mailRoom.User.fullname}} </span>\n							<span class="badge badge-default badge-roundless" data-ng-hide="mailRoom.User.fullname"> UNASSIGNED </span>\n						</td>\n						<td class="view-message" data-ng-switch="mailRoom.status" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n							<span class="badge badge-default" data-ng-class="{\n							\'badge-danger\': mailRoom.status == \'NEW\',\n							\'badge-warning\': mailRoom.status == \'OPEN\',\n							\'badge-info\': mailRoom.status == \'PENDING\',\n							\'badge-success\': mailRoom.status == \'CLOSED\'}"> {{mailRoom.status | uppercase}} </span>\n						</td>\n						<td class="view-message inbox-small-cells">\n							<i data-ng-show="mailRoom.attachment" class="fa fa-paperclip"></i>\n						</td>\n						<td class="view-message pull-right">\n							<time is="relative-time" datetime="{{mailRoom.updatedAt}}">\n								April 1, 2014\n							</time>\n						</td>\n					</tr>\n					<tr data-ng-hide="displayedMailRooms.length">\n						<td colspan="9" style="text-align:center;">\n							<i>{{ \'MESSAGE_NO_AVAILABLE_CONVERSATIONS\' | translate }}</i>\n						</td>\n					</tr>\n				</tbody>\n				<tfoot>\n					<tr>\n						<td colspan="9" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.mailRoomsByPage.value" st-displayed-pages="7"></div>\n						</td>\n					</tr>\n				</tfoot>\n			</table>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/inbox/room/room.html",'<!-- BEGIN TODO CONTENT -->\n<div class="todo-content" data-ng-init="initRoomView()">\n	<div class="portlet light">\n		<div class="portlet-title">\n			<div class="caption" data-ng-show="mailRoom">\n				<i class="icon-bar-chart font-green-sharp hide"></i>\n				<span class="badge badge-default" data-ng-class="{\'badge-error\': mailRoom.status == \'NEW\',\n				\'badge-warning\': mailRoom.status == \'OPEN\',\n				\'badge-success\': mailRoom.status == \'CLOSED\'}"> {{mailRoom.status | uppercase}} </span> -\n				<span class="caption-subject font-green-sharp bold uppercase">{{mailRoom.subject}}</span>\n			</div>\n			<div class="actions" data-ng-show="mailRoom">\n				<div class="btn-group" data-ng-show="Auth.isAdmin()">\n					<a class="btn grey-salsa btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n					{{ \'APPLICATION_ASSIGN\' | translate }} <i class="fa fa-angle-down"></i>\n					</a>\n					<ul class="dropdown-menu pull-right">\n						<li data-ng-repeat="agent in agents">\n							<a href="#" data-ng-click="assignAgent(agent.id)">\n							{{agent.fullname}} <span class="badge badge-default"> {{agent.fullname | uppercase | limitTo : 1}} </span>\n							</a>\n						</li>\n					</ul>\n				</div>\n				<div class="btn-group">\n					<a class="btn green-haze btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true" data-ng-click="updateStatus(\'CLOSED\')">\n					{{ \'APPLICATION_STORE\' | translate }}\n					</a>\n				</div>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<div class="row">\n				<div data-ng-show="mailRoom" data-ng-class="{\'col-md-7 col-sm-7\': mailRoom}">\n					<div class="scroller" id="mailMessages" style="height: 725px; overflow-y: scroll; width: auto;" data-always-visible="1" data-rail-visible1="1" data-initialized="1">\n						<ul class="chats">\n							<li data-ng-class="{\'in\': mailMessage.status == \'RECEIVED\', \'out\': mailMessage.status == \'SENT\' || mailMessage.status == \'SENDING\' || mailMessage.status == \'FAILED\'}" data-ng-repeat="mailMessage in mailRoom.MailMessages | orderBy:\'createdAt\'">\n								<img class="avatar" alt="" data-ng-src="api/users/avatar/{{getCurrentUser().userpic && mailMessage.status === \'SENT\' ? getCurrentUser().userpic : \'unknown_avatar\'}}">\n								<div class="message ">\n									<!-- <span class="arrow"></span> -->\n									<span class="bold">From: </span>\n									<span>{{mailMessage.from}}</span>\n									<br>\n									<span class="bold">To: </span>\n									<span>{{mailMessage.to}} </span>\n									<br>\n									<span data-ng-if="mailMessage.cc" class="bold">Cc: </span>\n									<span data-ng-if="mailMessage.cc">{{mailMessage.cc}} </span>\n									<br>\n									<span class="todo-tasklist-date">\n										<span class="pull-right">\n											<a data-ng-click="(mailMessage.status == \'SENDING\' || mailMessage.status == \'FAILED\') && retry(mailMessage.id)" href="#" class="btn default btn-xs" data-ng-class="{\'green-stripe\': mailMessage.status == \'SENT\' || mailMessage.status == \'RECEIVED\', \'blue-stripe\': mailMessage.status == \'SENDING\', \'red-stripe\': mailMessage.status == \'FAILED\'}"> {{mailMessage.status | uppercase}}\n												<i data-ng-class="{\'fa fa-check\': mailMessage.status == \'SENT\' || mailMessage.status == \'RECEIVED\', \'fa fa-warning\': mailMessage.status == \'SENDING\', \'fa fa-times\': mailMessage.status == \'FAILED\'}"></i>\n											</a>\n										</span>\n										<i class="fa fa-calendar"></i><time is="relative-time" datetime="{{mailMessage.updatedAt}}">April 1, 2014</time>\n									</span>\n									<hr>\n									<span class="body text-left" data-ng-bind-html="mailMessage.html || mailMessage.text" style="white-space: pre-wrap;"></span>\n									<!-- <br> -->\n									<hr data-ng-if="mailMessage.MailAttachments.length">\n									<div data-ng-repeat="mailAttachment in mailMessage.MailAttachments">\n										<strong>{{mailAttachment.fileName}}</strong>\n										<span>\n										{{mailAttachment.length}}B </span>\n										<a target="_self" download="{{mailAttachment.fileName}}" href="api/mail/attachments/{{mailAttachment.id}}">\n											{{ \'APPLICATION_DOWNLOAD\' | translate }}\n										</a>\n									</div>\n								</div>\n							</li>\n						</ul>\n					</div>\n				</div>\n				<div data-ng-class="{\'col-md-5 col-sm-5\': mailRoom, \'col-md-12 col-sm-12\': !mailRoom}">\n					<form name="forms.compose" data-ng-submit="forms.compose.$valid && sendMail()" class="form-horizontal" novalidate>\n						<!-- START HEAD -->\n						<div class="form">\n							<!-- START FROM -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.compose.from.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">From:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select data-ng-model="form.from" theme="bootstrap" name="from" required>\n												<ui-select-match placeholder="From...">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="{address: mailAccount.MailServerOut.username, name: mailAccount.name, id: mailAccount.id} as mailAccount in mailAccounts | filter: $select.search">\n													<div data-ng-bind-html="mailAccount.name | highlight: $select.search"></div>\n													<small data-ng-bind-html="mailAccount.MailServerOut.username | highlight: $select.search"></small>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.compose.from.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END FROM -->\n\n							<!-- MAIL TO -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.compose.to.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">To:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select tagging tagging-label multiple data-ng-model="form.sto" theme="bootstrap" name="to">\n												<ui-select-match placeholder="To...">{{$item}}</ui-select-match>\n												<ui-select-choices repeat="to in form.to | filter:$select.search">\n													{{to}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.compose.to.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END TO -->\n\n							<!-- START CC -->\n							<div class="form-group">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">Cc:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select tagging tagging-label="" multiple data-ng-model="form.scc" theme="bootstrap" name="cc" ng-disabled="disabled">\n												<ui-select-match placeholder="Cc...">{{$item}}</ui-select-match>\n												<ui-select-choices repeat="cc in form.cc">\n													{{cc}}\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END CC -->\n\n							<!-- START SUBJECT -->\n							<div data-ng-hide="mailRoom" class="form-group" data-ng-class="{\'has-error\': forms.compose.subject.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">Subject:</label>\n										</div>\n										<div class="col-md-11">\n											<input type="text" name="subject" class="form-control todo-taskbody-taskdesc" placeholder="Subject..." rows="8" data-ng-model="form.subject">\n											<span data-ng-show="forms.compose.subject.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END SUJBECT -->\n\n							<!-- START HTML -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.compose.text.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html" name="html"></div>\n									<!-- <textarea class="form-control todo-taskbody-taskdesc" rows="8" data-ng-model="form.text" name="text" style="resize: none;"></textarea> -->\n										<span data-ng-show="forms.compose.text.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n								</div>\n							</div>\n							<!-- END HTML -->\n\n							<!-- START ATTACH -->\n							<div class="form-group">\n								<div class="col-md-6">\n									<input type="file" nv-file-select uploader="uploader" name="file">\n									<table class="table" border="0">\n										<tbody>\n										<tr data-ng-repeat="item in uploader.queue">\n												<td style="border-top-style:none">\n													<strong>\n														{{ item.file.name }}\n													</strong>\n												</td>\n												<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n													{{ item.file.size/1024/1024|number:2 }} MB\n												</td>\n												<td nowrap style="border-top-style:none">\n													<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n															<span class="glyphicon glyphicon-trash"></span> Remove\n													</button>\n												</td>\n											</tr>\n										</tbody>\n									</table>\n								</div>\n								<div class="col-md-6">\n									<div class="form-actions right todo-form-actions">\n										<button class="btn btn-circle btn-sm green-haze">{{ \'APPLICATION_SEND\' | translate }}</button>\n										<input type="button" name="cancel" value="{{ \'APPLICATION_CANCEL\' | translate }}" class="btn btn-circle btn-sm btn-default" data-ng-click="cancel()">\n									</div>\n								</div>\n							</div>\n							<!-- END ATTACH -->\n						</div>\n					</form>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n<!-- END TODO CONTENT -->\n'),a.put("app/mail/inbox/room/room.retry.modal.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" class="modal-title">{{modal.title | translate}}</h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text">{{modal.text | translate}}</p>\n</div>\n<div class="modal-footer">\n  <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" class="btn">{{button.text | translate}}</button>\n</div>\n'),a.put("app/mail/queue/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="/square/projects">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-layers"></i>\n						<a href="#">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-layers font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="mailQueues.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/mail/queues/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getMailQueues([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Name\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="mail_queues.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedMailQueues" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.queuesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="queueByPage in queuesByPage | filter: $select.search">\n													<div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(queue, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate }}</th>\n								<th st-sort="timeout">{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}</th>\n						    <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="queue in displayedMailQueues">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mailQueues.checked" checklist-value="queue.id"></td>\n					      <td>{{queue.name}}</td>\n								<td>{{queue.description}}</td>\n								<td>{{queue.strategy | uppercase}}</td>\n								<td>{{queue.timeout}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/mail/queues/view/{{queue.id}}/settings">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(queue.name, queue.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedMailQueues.length">\n								<td colspan="6" class="text-center">\n									<i>No available queues</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="67" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.queuesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="note note-warning" data-ng-hide="teams.length">\n					<h4 class="block">Warning!</h4>\n					<p>\n						 {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n					</p>\n				</div>\n				<div  style="width: 50%; margin: 0 auto;">\n					<div class="col-md-9" id="multi-select-team" data-ng-show="teams.length"></div>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-layers"></i>\n					<a href="/mail/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					<i data-ng-show="queue" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="queue">\n					<a href="#">{{queue.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{queue.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.mail.queues.view.settings\')}">\n							<a data-ng-href="/mail/queues/view/{{queue.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.mail.queues.view.agents\')}">\n							<a data-ng-href="/mail/queues/view/{{queue.id}}/agents">\n							<i class="icon-users"></i>\n							{{ \'APPLICATION_AGENTS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/queue/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.general" data-ng-submit="forms.general.$valid && updateMailQueue()" novalidate>\n					<!-- START NAME -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n						<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n						<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n						<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END NAME -->\n\n					<!-- START DESCRIPTION -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n						<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n					</div>\n					<!-- END DESCRIPTION -->\n\n					<!-- START TIMEOUT -->\n					<div class="form-group">\n						<label class="control-label">Agent Timeout</label>\n						<input type="number" name="timeout" placeholder="Timeout" class="form-control" min="1" data-ng-model="queue.timeout"/>\n					</div>\n					<!-- END TIMEOUT -->\n\n					<!-- START HEADER SHAPE -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n						<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n						<ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n							<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n							<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n								<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n					</div>\n					<!-- END HEADER SHAPE -->\n					<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n				</form>\n			</div>\n		</div>\n	</div>\n</div>\n'),
+a.put("app/mail/queue/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-envelope"></i>\n				<a href="#">{{ \'APPLICATION_MAILS\' | translate }}</a>\n        <i class="fa fa-angle-right"></i>\n			</li>\n      <li>\n				<i class="icon-layers"></i>\n				<a href="/mail/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-layers font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n					<form name="forms.general" data-ng-submit="forms.general.$valid && createItem()" novalidate>\n						<!-- START NAME -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n							<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n						</div>\n						<!-- END DESCRIPTION -->\n\n						<!-- START TIMEOUT -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n							<label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="number" min="0" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n							<span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid && forms.general.timeout.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END TIMEOUT -->\n\n						<!-- START STRATEGY -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n							<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n								<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n									<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid && forms.general.strategy.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END STRATEGY -->\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CREATE\' | translate}}"/>\n					</form>\n			  </wz-step>\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{ \'APPLICATION_CONFIRM\' | translate }}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/mail/realtime/view/agent/agent.queues.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<div id="grid1" ui-grid="gridOptions" ui-grid-tree-view class="grid"></div>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/realtime/view/agent/agent.timeline.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedAgents" st-safe-src="agents" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="12">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n											<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="subject" class="input-small">{{ \'APPLICATION_SUBJECT\' | translate }}</th>\n						<th st-sort="from" class="input-small">{{ \'APPLICATION_FROM\' | translate }}</th>\n						<th st-sort="accountname" class="input-small">{{ \'APPLICATION_TO\' | translate }}</th>\n						<th st-sort="agentcalledAt" st-sort-default="reverse">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n						<th st-sort="agentconnectAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n						<th st-sort="agentringnoanswerAt">{{ \'APPLICATION_UNASWER_AT\' | translate }}</th>\n						<th st-sort="reason">{{ \'APPLICATION_REASON\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="agent in displayedAgents">\n						<td>\n							<span>\n								<i data-ng-class="{\'icon-user font-yellow\': agent.lastevent === \'called\',\n								\'icon-user-following font-green\': agent.lastevent === \'agent\',\n								\'icon-user-unfollow font-red\': agent.lastevent === \'timeout\',\n								\'icon-user-unfollow font-blue\': agent.lastevent === \'answered_elsewhere\'}"></i>\n							</span>\n						</td>\n						<td>{{agent.uniqueid}}</td>\n						<td>{{agent.mailqueuename}}</td>\n						<td>{{agent.fullname}}</td>\n						<td>{{agent.subject}}</td>\n						<td>{{agent.from}}</td>\n						<td>{{agent.accountname}}</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentcalledAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentconnectedAt}}" data-ng-show="agent.agentconnectedAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentringnoanswerAt}}" data-ng-show="agent.agentringnoanswerAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							{{agent.reason | uppercase}}\n						</td>\n			    </tr>\n					<tr data-ng-hide="displayedAgents.length">\n						<td colspan="11" style="text-align:center;">\n							<i>No agents available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_SUBJECT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n						</td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FROM\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="accountname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_TO\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="7"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="12" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/realtime/view/session/session.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initMails()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedMails" st-safe-src="sessions" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="12">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.sessionsByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="sessionByPage in sessionsByPage | filter: $select.search">\n											<div ng-bind-html="sessionByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="subject" class="input-small">{{ \'APPLICATION_SUBJECT\' | translate }}</th>\n						<th st-sort="from" class="input-small">{{ \'APPLICATION_FROM\' | translate }}</th>\n						<th st-sort="accountname" class="input-small">{{ \'APPLICATION_TO\' | translate }}</th>\n						<th st-sort="sessioncalledAt" st-sort-default="reverse">{{ \'APPLICATION_JOIN_AT\' | translate }}</th>\n						<th st-sort="sessionconnectAt">{{ \'APPLICATION_LEAVE_AT\' | translate }}</th>\n						<th st-sort="sessionringnoanswerAt">{{ \'APPLICATION_UNMANAGED_AT\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="session in displayedMails">\n						<td>\n							<span>\n								<i data-ng-class="{\'icon-user font-yellow\': session.mailjoinAt && !session.mailleaveAt,\n								\'icon-user-following font-green\': session.fullname,\n								\'icon-user-unfollow font-red\': session.mailunmanagedAt}"></i>\n							</span>\n						</td>\n						<td>{{session.uniqueid}}</td>\n						<td>{{session.mailqueuename}}</td>\n						<td>{{session.fullname}}</td>\n						<td>{{session.subject}}</td>\n						<td>{{session.from}}</td>\n						<td>{{session.accountname}}</td>\n						<td>\n							<time is="relative-time" datetime="{{session.mailjoinAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{session.mailleaveAt}}" data-ng-show="session.mailleaveAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{session.mailunmanagedAt}}" data-ng-show="session.mailunmanagedAt">\n								April 1, 2014\n							</time>\n						</td>\n			    </tr>\n					<tr data-ng-hide="displayedMails.length">\n						<td colspan="11" style="text-align:center;">\n							<i>No sessions available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_SUBJECT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n						</td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FROM\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="accountname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_TO\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="7"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="12" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.sessionsByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-energy"></i>\n					<a href="/mail/realtime/list">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<div>\n		    <nav class="navbar navbar-default" role="navigation">\n		        <div class="navbar-header">\n		            <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n		                <span class="sr-only">Toggle navigation</span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		            </button>\n		            <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n		        </div>\n\n		        <!-- Collect the nav links, forms, and other content for toggling -->\n		        <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n		            <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_AGENTS\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'agents\'></tree>\n		                </li>\n										<li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_SESSIONS\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'sessions\'></tree>\n		                </li>\n		            </ul>\n		            <!-- <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_QUEUES\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'queues\'></tree>\n		                </li>\n		            </ul> -->\n		        </div>\n		        <!-- /.navbar-collapse -->\n		    </nav>\n		</div>\n		<div ui-view></div>\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/statistics/statistics.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="/agent">{{ \'APPLICATION_MAILS\' | translate }}</a>\n				</li>\n				<li>\n					<a href="#">{{agent.fullname}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img ng-src="assets/images/media/statistics.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{agent.fullname}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{agent.role}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.mail.statistics.summary\')}">\n							<a data-ng-href="/mail/statistics/summary">\n							<i class="icon-bar-chart"></i>\n							{{ \'APPLICATION_SUMMARY\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/statistics/statistics.summary.html",'<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CONVERSATIONS\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row">\n					<div class="col-md-6">\n						<div class="portlet sale-summary">\n							<div class="portlet-body">\n								<ul class="list-unstyled">\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_INBOX\' | translate }} <i class="fa fa-img-up"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ directory:\'INBOX\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_SENT\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ directory:\'SENT\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_OUTGOING\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ directory:\'NOT SENT\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_DRAFT\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ directory:\'DRAFT\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_TRASH\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ directory:\'TRASH\' }).length }} </span>\n									</li>\n								</ul>\n							</div>\n						</div>\n					</div>\n					<div class="col-md-6">\n						<canvas class="chart chart-pie" data="[\n						(mailMessages | filter:{ directory:\'INBOX\' }).length,\n						(mailMessages | filter:{ directory:\'SENT\' }).length,\n						(mailMessages | filter:{ directory:\'NOT SENT\' }).length,\n						(mailMessages | filter:{ directory:\'DRAFT\' }).length,\n						(mailMessages | filter:{ directory:\'TRASH\' }).length]" labels="[\n						$translate.instant(\'APPLICATION_INBOX\'),\n						$translate.instant(\'APPLICATION_SENT\'),\n						$translate.instant(\'APPLICATION_OUTGOING\'),\n						$translate.instant(\'APPLICATION_DRAFT\'),\n						$translate.instant(\'APPLICATION_TRASH\')]" legend="true"></canvas>\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END PORTLET-->\n\n		<!-- BEGIN PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-pencil font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_OTHER_INFO\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row">\n					<div class="col-md-6">\n						<div class="portlet sale-summary">\n							<div class="portlet-body">\n								<ul class="list-unstyled">\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_READ\' | translate }} <i class="fa fa-img-up"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ read:\'true\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_UNREAD\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ read:\'false\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_FAVORITE\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ favorite:\'true\' }).length }} </span>\n									</li>\n								</ul>\n							</div>\n						</div>\n					</div>\n					<div class="col-md-6">\n						<canvas class="chart chart-pie" data="[\n						(mailMessages | filter:{ read:\'true\' }).length,\n						(mailMessages | filter:{ read:\'false\' }).length]" labels="[\n						$translate.instant(\'APPLICATION_READ\'),\n						$translate.instant(\'APPLICATION_UNREAD\')]" legend="true"></canvas>\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END PORTLET-->\n	</div>\n</div>\n'),a.put("app/mail/timeline/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-list"></i>\n						<a href="/mail/timeline/list"> Timeline</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n	<div class="col-md-12">\n    <h3 class="page-title">\n				Timeline\n			</h3>\n			<!-- END PAGE HEADER-->\n			<!-- BEGIN PAGE CONTENT-->\n			<div class="timeline">\n				<!-- TIMELINE ITEM -->\n				<div class="timeline-item" data-ng-repeat="event in events | orderBy:\'-id\'">\n					<div class="timeline-badge">\n						<div class="timeline-icon">\n							<i class="icon-envelope font-green-haze"></i>\n						</div>\n					</div>\n					<div class="timeline-body">\n						<div class="timeline-body-arrow"></div>\n						<div class="timeline-body-head">\n							<div class="timeline-body-head-caption">\n								<span class="timeline-body-alerttitle" data-ng-class="{\'font-red\': event.name == \'INCOMING\', \'font-blue\': event.name == \'ATTEMPT\', \'font-green\': event.name == \'TAKEN\'}">{{event.name | uppercase}}</span>\n								<span class="timeline-body-time font-grey-cascade">at {{event.createdAt | date:\'yyyy-MM-dd HH:mm:ss\'}}</span>\n							</div>\n							<div class="timeline-body-head-actions">\n								<div class="btn-group">\n									<a class="btn btn-circle btn-sm dropdown-toggle btn-success" href="/mail/inbox/room/{{event.MailRoomId}}">Go To Mail</a>\n								</div>\n							</div>\n						</div>\n						<div class="timeline-body-content">\n							<span class="font-grey-cascade" data-ng-show="event.User">\n							{{event.MailRoom.subject ? event.MailRoom.subject + \' - \' : \'\'}}<a href="/agents/view/{{event.UserId}}/account">{{event.User.fullname}}</a>\n							</span>\n						</div>\n					</div>\n				</div>\n				<!-- END TIMELINE ITEM -->\n			</div>\n			<!-- END PAGE CONTENT-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/main/chooseContact.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_CHOOSE_CONTACT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.choose" novalidate>\n    <div class="form-group" data-ng-class="{\'has-error\': forms.choose.contactId.$invalid && forms.choose.$submitted}">\n      <label class="control-label">{{\'APPLICATION_CONTACT\' | translate}}</label>\n      <ui-select data-ng-model="item.contactId" theme="bootstrap" name="contactId" ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_CONTACT\' | translate }}">{{$select.selected.name}}</ui-select-match>\n        <ui-select-choices repeat="contact.id as contact in contacts | filter: $select.search">\n          <div ng-bind-html="contact.name | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.choose.CompanyId.$invalid && forms.choose.$submitted" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.tag.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/main/main.html",'<!-- BEGIN HEADER -->\n<div data-ng-include="\'components/header/header.html\'" data-ng-controller="HeaderController" class="page-header navbar navbar-fixed-top">\n</div>\n<!-- END HEADER -->\n\n<div class="clearfix">\n</div>\n<!-- BEGIN CONTAINER -->\n<div class="page-container" data-ng-init="initMain()">\n\n  <!-- BEGIN SIDEBAR -->\n  <div data-ng-include="\'components/sidebar/sidebar.html\'" data-ng-controller="SidebarController" class="page-sidebar-wrapper">\n  </div>\n  <!-- END SIDEBAR -->\n\n  <!-- BEGIN CONTENT -->\n  <div class="page-content-wrapper">\n    <div class="page-content">\n\n      <!-- BEGIN PAGE CONTENT -->\n      <!-- <toaster-container></toaster-container> -->\n      <uib-tabset>\n        <uib-tab select="addWorkspace()" active="mainTab.active">\n          <uib-tab-heading>\n            Motion <i class="icon-rocket"></i>\n          </uib-tab-heading>\n          <div ui-view class=""></div>\n        </uib-tab>\n        <uib-tab data-ng-repeat="workspace in workspaces" active="workspace.active" data-ng-switch="workspace.type">\n          <uib-tab-heading>\n            {{workspace.name}} <i class="icon-close pointer-cursor" data-ng-click="closeTab($index)"></i>\n          </uib-tab-heading>\n          <div class="" data-ng-switch="workspace.type">\n            <new-contact data-ng-switch-when="newContact" workspace="workspace" index="$index" on-submit="createContact(index,item)"></new-contact>\n            <contact data-ng-switch-when="contact" workspace="workspace" index="$index" on-submit="updateContact(index,item)"></contact>\n          </div>\n        </uib-tab>\n        <!-- <uib-tab select="addWorkspace()">\n          <uib-tab-heading>\n            <i class="icon-plus"></i>\n          </uib-tab-heading>\n        </uib-tab> -->\n      </uib-tabset>\n      <!-- END PAGE CONTENT  -->\n\n    </div>\n  </div>\n  <!-- END CONTENT -->\n\n  <!-- BEGIN QUICK SIDEBAR -->\n  <a href="javascript:;" class="page-quick-sidebar-toggler"><i class="icon-close"></i></a>\n  <div data-ng-include="\'components/quickSidebar/quickSidebar.html\'" data-ng-controller="QuickSidebarController" class="page-quick-sidebar-wrapper">\n  </div>\n  <!-- END QUICK SIDEBAR -->\n\n</div>\n<!-- END CONTAINER -->\n\n<!-- BEGIN FOOTER -->\n<div data-ng-include="\'components/footer/footer.html\'" data-ng-controller="FooterController" class="page-footer">\n</div>\n<!-- END FOOTER -->\n\n<!-- BEGIN JAVASCRIPTS(Load javascripts at bottom, this will reduce page load time) -->\n<!-- BEGIN CORE PLUGINS -->\n<!--[if lt IE 9]>\n<script src="../../assets/global/plugins/respond.min.js"></script>\n<script src="../../assets/global/plugins/excanvas.min.js"></script>\n<![endif]-->\n\n<!-- END JAVASCRIPTS -->\n'),
+a.put("app/main/template.contactTab.html",'<div class="row margin-top-20 contact-tab-container" >\n  <!-- <pre>\n    {{workspaces}}\n  </pre> -->\n  <!-- <pre>\n    {{contact | json}}\n  </pre> -->\n  <div class="col-md-12 contact-tab">\n    <form name="forms.general" data-ng-submit="submit({index:index,item:contact})" novalidate>\n    <!-- BEGIN PROFILE SIDEBAR -->\n    <div class="profile-sidebar">\n      <!-- PORTLET MAIN -->\n      <div class="portlet light pbottom20">\n        <!-- SIDEBAR USERPIC -->\n        <div class="profile-userpic">\n          <img src="assets/images/media/contact.png" class="img-responsive" alt="">\n        </div>\n        <!-- END SIDEBAR USERPIC -->\n        <!-- SIDEBAR USER TITLE -->\n        <div class="profile-usertitle">\n          <div class="profile-usertitle-name">\n            {{contact.fullname}}\n          </div>\n          <div class="profile-usertitle-job">\n          </div>\n        </div>\n        <!-- END SIDEBAR USER TITLE -->\n        <!-- SIDEBAR BUTTONS -->\n        <div class="profile-userbuttons">\n          <button type="submit" class="btn btn-circle green-haze btn-sm" data-ng-disabled="!contact.fullname">{{\'APPLICATION_UPDATE\' | translate}}</button>\n          <!-- <button type="button" class="btn btn-circle btn-danger btn-sm">Message</button> -->\n        </div>\n        <!-- END SIDEBAR BUTTONS -->\n        <!-- SIDEBAR MENU -->\n        <!-- <div class="profile-usermenu">\n          <ul class="nav">\n            <li class="active">\n              <a href="extra_profile.html">\n              <i class="icon-home"></i>\n              Overview </a>\n            </li>\n            <li>\n              <a href="extra_profile_account.html">\n              <i class="icon-settings"></i>\n              Account Settings </a>\n            </li>\n            <li>\n              <a href="page_todo.html" target="_blank">\n              <i class="icon-check"></i>\n              Tasks </a>\n            </li>\n            <li>\n              <a href="extra_profile_help.html">\n              <i class="icon-info"></i>\n              Help </a>\n            </li>\n          </ul>\n        </div> -->\n        <!-- END MENU -->\n      </div>\n      <!-- END PORTLET MAIN -->\n      <!-- PORTLET MAIN -->\n      <div class="portlet light">\n        <!-- STAT -->\n        <div class="row list-separated profile-stat">\n          <div class="col-md-4 col-sm-4 col-xs-6">\n            <div class="uppercase profile-stat-title">\n               37\n            </div>\n            <div class="uppercase profile-stat-text">\n               Projects\n            </div>\n          </div>\n          <div class="col-md-4 col-sm-4 col-xs-6">\n            <div class="uppercase profile-stat-title">\n               51\n            </div>\n            <div class="uppercase profile-stat-text">\n               Tasks\n            </div>\n          </div>\n          <div class="col-md-4 col-sm-4 col-xs-6">\n            <div class="uppercase profile-stat-title">\n               61\n            </div>\n            <div class="uppercase profile-stat-text">\n               Uploads\n            </div>\n          </div>\n        </div>\n        <!-- END STAT -->\n        <div>\n          <h4 class="profile-desc-title">{{\'APPLICATION_ABOUT\' | translate}} {{contact.fullname}}</h4>\n          <span class="profile-desc-text break-overflow">{{contact.description}}</span>\n          <div class="margin-top-20 profile-desc-link">\n            <i class="fa fa-globe"></i>\n            <a href="http://www.keenthemes.com">www.keenthemes.com</a>\n          </div>\n          <div class="margin-top-20 profile-desc-link">\n            <i class="fa fa-twitter"></i>\n            <a href="http://www.twitter.com/keenthemes/">@keenthemes</a>\n          </div>\n          <div class="margin-top-20 profile-desc-link">\n            <i class="fa fa-facebook"></i>\n            <a href="http://www.facebook.com/keenthemes/">keenthemes</a>\n          </div>\n        </div>\n      </div>\n      <!-- END PORTLET MAIN -->\n    </div>\n    <!-- END BEGIN PROFILE SIDEBAR -->\n    <!-- BEGIN PROFILE CONTENT -->\n    <div class="profile-content">\n      <div class="row">\n        <div class="col-md-6">\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light ">\n            <div class="portlet-title">\n              <div class="caption caption-md">\n                <i class="icon-bar-chart theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_DETAIL\' | translate}}</span>\n              </div>\n              <div class="actions">\n                <div class="btn-group btn-group-devided" data-toggle="buttons">\n                  <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="detail.tab=\'main\'">\n                  <input type="radio" class="toggle">{{\'APPLICATION_MAIN\' | translate}}</label>\n                  <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="detail.tab=\'address\'">\n                  <input type="radio" class="toggle">{{\'APPLICATION_ADDRESS\' | translate}}</label>\n                  <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="detail.tab=\'other\'">\n                  <input type="radio" class="toggle">{{\'APPLICATION_OTHER\' | translate}}</label>\n                  <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="detail.tab=\'customFields\'">\n                  <input type="radio" class="toggle">{{\'APPLICATION_CUSTOM_FIELDS\' | translate}}</label>\n                </div>\n              </div>\n            </div>\n            <div class="portlet-body">\n              <div data-ng-class="{\'hidden\':detail.tab != \'main\'}" class="portlet-body contact-portlet">\n              <!-- START FULLNAME -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.fullname.$touched || forms.general.$submitted) && forms.general.fullname.$invalid}">\n                <label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="contact.fullname" required/>\n                <span data-ng-show="(forms.general.fullname.$touched || forms.general.$submitted) && forms.general.fullname.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END FULLNAME -->\n\n              <!-- START COMPANY -->\n              <div class="form-group" data-ng-class="{\'has-error\': forms.general.CompanyId.$invalid && forms.general.$submitted}">\n                <label class="control-label">{{\'APPLICATION_COMPANY\' | translate}}</label>\n                <ui-select data-ng-model="contact.CompanyId" theme="bootstrap" name="CompanyId" ng-disabled="disabled">\n                  <ui-select-match allow-clear placeholder="{{ \'APPLICATION_COMPANY\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                  <ui-select-choices repeat="company.id as company in companies | filter: $select.search">\n                    <div ng-bind-html="company.name | highlight: $select.search"></div>\n                  </ui-select-choices>\n                </ui-select>\n                <span data-ng-show="forms.general.CompanyId.$invalid && forms.general.$submitted" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END COMPANY -->\n\n              <!-- START TAGS -->\n              <div class="form-group" data-ng-class="{\'has-error\': forms.general.tags.$invalid && forms.general.$submitted}">\n                <label class="control-label">{{\'APPLICATION_TAGS\' | translate}}</label>\n                <ui-select tagging tagging-label="" multiple=\'true\' data-ng-model="contact.tags" theme="bootstrap" name="tags" ng-disabled="disabled">\n                  <ui-select-match placeholder="{{ \'APPLICATION_TAGS\' | translate }}">{{$item}}</ui-select-match>\n                  <ui-select-choices repeat="tag in tags | filter: $select.search">\n                    {{tag}}\n                  </ui-select-choices>\n                </ui-select>\n                <span data-ng-show="forms.general.tags.$invalid && forms.general.$submitted" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END TAGS -->\n\n            </div>\n            <div data-ng-class="{\'hidden\':detail.tab != \'address\'}" class="portlet-body contact-portlet">\n              <!-- START STREET -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$invalid}">\n                <label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n                <input type="text" name="street" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="contact.street"/>\n                <span data-ng-show="(forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END STREET -->\n\n              <!-- START POSTALCODE -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$invalid}">\n                <label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n                <input type="text" name="postalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="contact.postalCode"/>\n                <span data-ng-show="(forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END POSTALCODE -->\n\n              <!-- START CITY -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$invalid}">\n                <label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n                <input type="text" name="city" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="contact.city"/>\n                <span data-ng-show="(forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END CITY -->\n\n              <!-- START COUNTRY -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$invalid}">\n                <label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n                <input type="text" name="country" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="contact.country"/>\n                <span data-ng-show="(forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END COUNTRY -->\n            </div>\n            <div data-ng-class="{\'hidden\':detail.tab != \'other\'}" class="portlet-body contact-portlet">\n              <!-- START DATEOFBIRTH -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.dateOfBirth.$touched || forms.general.$submitted) && forms.general.dateOfBirth.$invalid}">\n                <label class="control-label">{{\'APPLICATION_DATEOFBIRTH\' | translate}}</label>\n                <input name="dateOfBirth" type="date" placeholder="{{\'APPLICATION_DATEOFBIRTH\' | translate}}" class="form-control date-picker" data-ng-model="contact.dateOfBirth"/>\n                <span data-ng-show="(forms.general.dateOfBirth.$touched || forms.general.$submitted) && forms.general.dateOfBirth.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END DATEOFBIRTH -->\n\n              <!-- START DESCRIPTION -->\n              <div class="form-group">\n                <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                <textarea style="resize: vertical;" type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="contact.description"></textarea>\n              </div>\n              <!-- END DESCRIPTION -->\n              <!-- START CREATED_BY -->\n              <div class="form-group">\n                <label class="control-label">{{\'APPLICATION_CREATED_BY\' | translate}}</label>\n                <input type="text" name="createdBy" placeholder="{{\'APPLICATION_CREATED_BY\' | translate}}" class="form-control" data-ng-model="contact.User.name" disabled/>\n              </div>\n              <!-- END CREATED_BY -->\n            </div>\n            <div data-ng-class="{\'hidden\':detail.tab != \'customFields\'}" class="portlet-body contact-portlet">\n              <div data-ng-repeat="customField in customFields">\n                <div data-ng-if="customField.active || _.find(contact.CustomFields,{id:customField.id})">\n                <div data-ng-if="customField.type==\'text\'" class="form-group" data-ng-class="{\'has-error\': (forms.general[customField.name].$touched || forms.general.$submitted) && forms.general[customField.name].$invalid}">\n                  <label class="control-label">{{customField.name}}</label>\n                  <input data-ng-if="!joinPrompt" type="text" name="{{customField.name}}" placeholder="{{customField.name}}" class="form-control" data-ng-model="contact.customFields[customField.id]"/>\n                  <span data-ng-show="(forms.general[customField.name].$touched || forms.general.$submitted) && forms.general[customField.name].$error.required" class="help-block help-block-error">\n                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                  </span>\n                </div>\n                <div data-ng-if="customField.type==\'select\'" class="form-group" data-ng-class="{\'has-error\': forms.general[customField.name].$invalid && forms.general.$submitted}">\n                  <label class="control-label">{{customField.name}}</label>\n                  <ui-select data-ng-if="!joinPrompt" data-ng-model="contact.customFields[customField.id]" theme="bootstrap" name="{{customField.name}}" data-ng-disabled="disabled">\n                    <ui-select-match allow-clear placeholder="{{customField.name}}">{{$select.selected.value}}</ui-select-match>\n                    <ui-select-choices repeat="choice.value as choice in customField.values | filter: $select.search">\n                      <div ng-bind-html="choice.value | highlight: $select.search"></div>\n                    </ui-select-choices>\n                  </ui-select>\n                  <span data-ng-show="forms.general[customField.name].$invalid && forms.general.$submitted" class="help-block help-block-error">\n                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                  </span>\n                </div>\n              </div>\n              </div>\n            </div>\n            </div>\n          </div>\n          <!-- END PORTLET -->\n        </div>\n        <div class="col-md-6">\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light">\n            <div class="portlet-title tabbable-line">\n              <div class="caption caption-md">\n                <i class="icon-globe theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONTACTS\' | translate}}</span>\n              </div>\n              <ul class="nav nav-tabs">\n                <li class="active">\n                  <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_PHONES\' | translate}}</a>\n                </li>\n                <li>\n                  <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_EMAILS\' | translate}}</a>\n                </li>\n              </ul>\n            </div>\n            <div class="portlet-body">\n              <!--BEGIN TABS-->\n              <div class="tab-content">\n                <div class="tab-pane active" id="tab_1_1">\n                  <div class="contact-portlet">\n                    <!-- START PHONES -->\n                    <div class="padding-bottom mbottom20">\n                    <div data-ng-if="contact.Phones.length>0">\n                      <label class="control-label">{{\'APPLICATION_PHONES\' | translate}}</label>\n                    </div>\n                    <div class="padding-bottom" ng-repeat="phone in contact.Phones">\n                      <div class="form-group">\n                        <div class="input-group">\n                          <input type="text" class="form-control" ng-model="phone.phone" required>\n                          <span class="input-group-btn">\n                          <button class="btn red" type="button"data-ng-click="removeField(\'Phones\',$index)"><i class="fa fa-times"></i></button>\n                          </span>\n                        </div>\n                      </div>\n                    </div>\n                    <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField(\'Phones\')">\n                      <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_PHONE\' | translate}}\n                    </button>\n                  </div>\n                  <!-- END PHONES -->\n                </div>\n              </div>\n                <div class="tab-pane" id="tab_1_2">\n                  <div class="contact-portlet">\n                    <!-- START EMAILS -->\n                      <div class="padding-bottom mbottom20">\n                      <div data-ng-if="contact.Emails.length>0">\n                        <label class="control-label">{{\'APPLICATION_EMAILS\' | translate}}</label>\n                      </div>\n                      <div class="padding-bottom" ng-repeat="email in contact.Emails">\n                        <div class="form-group">\n                          <div class="input-group">\n                            <input type="email" class="form-control" ng-model="email.email" required>\n                            <span class="input-group-btn">\n                            <button class="btn btn-danger" type="button" data-ng-click="removeField(\'Emails\',$index)"><i class="fa fa-times"></i></button>\n                            </span>\n                          </div>\n                        </div>\n                      </div>\n                      <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField(\'Emails\')">\n                        <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_EMAIL\' | translate}}\n                      </button>\n                    </div>\n                    <!-- END EMAILS -->\n                  </div>\n                </div>\n              </div>\n              <!--END TABS-->\n            </div>\n          </div>\n          <!-- END PORTLET -->\n        </div>\n      </div>\n      <div class="row">\n        <div class="col-md-6">\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light">\n            <div class="portlet-title tabbable-line">\n              <div class="caption caption-md">\n                <i class="icon-globe theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_LOG\' | translate}}</span>\n              </div>\n              <ul class="nav nav-tabs">\n                <li class="active">\n                  <a href="#" data-target="#tab_2_1" data-toggle="tab">{{ \'APPLICATION_JOURNAL\' | translate}}</a>\n                </li>\n                <li>\n                  <a href="#" data-target="#tab_2_2" data-toggle="tab">{{ \'APPLICATION_HISTORY\' | translate}}</a>\n                </li>\n              </ul>\n            </div>\n            <div class="portlet-body">\n              <!--BEGIN TABS-->\n              <div class="tab-content">\n                <div class="tab-pane active" id="tab_2_1">\n                  <div class="contact-portlet">\n                    <div class="actions">\n                      <div class="btn-group btn-group-devided" data-toggle="buttons">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="log.journal.show=\'Phones\';getRows(\'journal\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_PHONES\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.journal.show=\'Emails\';log.journal.detail=\'general\';getRows(\'journal\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_EMAILS\' | translate}}</label>\n                      </div> |\n                      <div class="btn-group btn-group-devided" data-toggle="buttons">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="log.journal.type=\'Inbounds\';getRows(\'journal\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_INBOUND\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.journal.type=\'Outbounds\';getRows(\'journal\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_OUTBOUND\' | translate}}</label>\n                      </div> |\n                      <div class="btn-group btn-group-devided" data-toggle="buttons" data-ng-if="log.journal.show==\'Phones\'">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="log.journal.detail=\'general\';getRows(\'journal\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_GENERAL\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.journal.detail=\'QueueCalls\';getRows(\'journal\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_QUEUES\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.journal.detail=\'ReportAgents\';getRows(\'journal\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_AGENTS\' | translate}}</label>\n                      </div>\n                    </div>\n                    <table st-table="journal" class="table table-striped">\n                  		<thead>\n                  		<tr>\n                  			<th data-ng-repeat="column in columns[log.journal.show][log.journal.detail].header">{{column | translate}}</th>\n                  		</tr>\n                  		</thead>\n                  		<tbody>\n                  		<tr data-ng-repeat="row in rows[\'journal\']">\n                  			<td data-ng-repeat="col in columns[log.journal.show][log.journal.detail].indexes">{{col == \'createdAt\' ? moment(row[col]).format(\'DD/MM/YYYY HH:mm:ss\') : row[col]}}</td>\n                  		</tr>\n                      <tr data-ng-hide="rows[\'journal\'].length">\n                        <td colspan="{{columns[log.journal.show][log.journal.detail].header.length}}" class="text-center">\n                          {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}\n                        </td>\n                      </tr>\n                  		</tbody>\n                  		<tfoot>\n                  			<tr>\n                  				<td colspan="{{columns[log.journal.show][log.journal.detail].header.length}}" class="text-center">\n                  					<div st-pagination="" st-items-by-page="itemsByPage" st-displayed-pages="7"></div>\n                  				</td>\n                  			</tr>\n                  		</tfoot>\n                  	</table>\n\n                  </div>\n              </div>\n                <div class="tab-pane" id="tab_2_2">\n                  <div class="contact-portlet">\n                    <div class="actions">\n                      <div class="btn-group btn-group-devided" data-toggle="buttons">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="log.history.show=\'Phones\';getRows(\'history\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_PHONES\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.history.show=\'Emails\';log.history.detail=\'general\';getRows(\'history\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_EMAILS\' | translate}}</label>\n                      </div> |\n                      <div class="btn-group btn-group-devided" data-toggle="buttons">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="log.history.type=\'HistoryInbounds\';getRows(\'history\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_INBOUND\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.history.type=\'HistoryOutbounds\';getRows(\'history\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_OUTBOUND\' | translate}}</label>\n                      </div> |\n                      <div class="btn-group btn-group-devided" data-toggle="buttons" data-ng-if="log.history.show==\'Phones\'">\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="log.history.detail=\'general\';getRows(\'history\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_GENERAL\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.history.detail=\'HistoryQueueCalls\';getRows(\'history\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_QUEUES\' | translate}}</label>\n                        <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="log.history.detail=\'HistoryReportAgents\';getRows(\'history\');">\n                        <input type="radio" class="toggle">{{\'APPLICATION_AGENTS\' | translate}}</label>\n                      </div>\n                    </div>\n                    <table st-table="history" class="table table-striped">\n                      <thead>\n                      <tr>\n                        <th data-ng-repeat="column in columns[log.history.show][log.history.detail].header">{{column | translate}}</th>\n                      </tr>\n                      </thead>\n                      <tbody>\n                      <tr data-ng-repeat="row in rows[\'history\']">\n                        <td data-ng-repeat="col in columns[log.history.show][log.history.detail].indexes">{{col == \'createdAt\' ? moment(row[col]).format(\'DD/MM/YYYY HH:mm:ss\') : row[col]}}</td>\n                      </tr>\n                      <tr data-ng-hide="rows[\'history\'].length">\n                        <td colspan="{{columns[log.history.show][log.history.detail].header.length}}" class="text-center">\n                          {{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}\n                        </td>\n                      </tr>\n                      </tbody>\n                      <tfoot>\n                        <tr>\n                          <td colspan="{{columns[log.history.show][log.history.detail].header.length}}" class="text-center">\n                            <div st-pagination="" st-items-by-page="itemsByPage" st-displayed-pages="7"></div>\n                          </td>\n                        </tr>\n                      </tfoot>\n                    </table>\n\n                  </div>\n                </div>\n              </div>\n              <!--END TABS-->\n            </div>\n          </div>\n          <!-- END PORTLET -->\n        </div>\n        <div class="col-md-6">\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light tasks-widget">\n            <div class="portlet-title">\n              <div class="caption caption-md">\n                <i class="icon-bar-chart theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">Tasks</span>\n                <span class="caption-helper">16 pending</span>\n              </div>\n              <div class="inputs">\n                <div class="portlet-input input-small input-inline">\n                  <div class="input-icon right">\n                    <i class="icon-magnifier"></i>\n                    <input type="text" class="form-control form-control-solid" placeholder="search...">\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div class="portlet-body">\n              <div class="task-content">\n                <div class="contact-portlet">\n                  <!-- START TASK LIST -->\n                  <ul class="task-list">\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="hidden" value="1" name="test"/>\n                        <input type="checkbox" class="liChild" value="2" name="test"/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Present 2013 Year IPO Statistics at Board Meeting </span>\n                        <span class="label label-sm label-success">Company</span>\n                        <span class="task-bell">\n                        <i class="fa fa-bell-o"></i>\n                        </span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Hold An Interview for Marketing Manager Position </span>\n                        <span class="label label-sm label-danger">Marketing</span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        AirAsia Intranet System Project Internal Meeting </span>\n                        <span class="label label-sm label-success">AirAsia</span>\n                        <span class="task-bell">\n                        <i class="fa fa-bell-o"></i>\n                        </span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Technical Management Meeting </span>\n                        <span class="label label-sm label-warning">Company</span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Kick-off Company CRM Mobile App Development </span>\n                        <span class="label label-sm label-info">Internal Products</span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Prepare Commercial Offer For SmartVision Website Rewamp </span>\n                        <span class="label label-sm label-danger">SmartVision</span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Sign-Off The Comercial Agreement With AutoSmart </span>\n                        <span class="label label-sm label-default">AutoSmart</span>\n                        <span class="task-bell">\n                        <i class="fa fa-bell-o"></i>\n                        </span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Company Staff Meeting </span>\n                        <span class="label label-sm label-success">Cruise</span>\n                        <span class="task-bell">\n                        <i class="fa fa-bell-o"></i>\n                        </span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li class="last-line">\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        KeenThemes Investment Discussion </span>\n                        <span class="label label-sm label-warning">KeenThemes </span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                  </ul>\n                  <!-- END START TASK LIST -->\n                </div>\n              </div>\n            </div>\n          </div>\n          <!-- END PORTLET -->\n        </div>\n      </div>\n    </div>\n    <!-- END PROFILE CONTENT -->\n  </form>\n  </div>\n</div>\n'),
+a.put("app/main/template.newContactTab.html",'<div class="portlet light bordered">\n  <div class="portlet-title">\n    <div class="caption font-green-sharp">\n      <i class="icon-envelope-letter font-green-sharp"></i>\n      <span class="caption-subject">{{ \'APPLICATION_NEW_CONTACT\' | translate }}</a> </span>\n    </div>\n  </div>\n  <div class="portlet-body">\n    <!-- <pre>\n      {{forms.general | json}}\n    </pre> -->\n    <!-- <pre>\n      {{item | json}}\n    </pre>\n    <pre>\n      {{index}}\n    </pre> -->\n        <form name="forms.general" data-ng-submit="submit({index: index,item: item})" novalidate>\n          <!-- <pre>\n            {{checkboxes | json}}\n          </pre>\n          <pre>\n            {{item | json}}\n          </pre> -->\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light">\n            <div class="portlet-title">\n              <div class="caption caption-md">\n                <i class="icon-bar-chart theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_DETAILS\' | translate}}</span>\n              </div>\n              <div class="inputs">\n                <div class="portlet-input input-inline input-small ">\n                </div>\n              </div>\n            </div>\n            <div class="portlet-body">\n          <div class="row">\n            <div class="col-md-6">\n          <!-- START FULLNAME -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.fullname.$touched || forms.general.$submitted) && forms.general.fullname.$invalid}">\n            <label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="item.fullname" data-ng-disabled="checkboxes.fullname ? !checkboxes.fullname : true" required/>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.fullname">\n              </span>\n            </div> -->\n            <input data-ng-if="!joinPrompt" type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n            <span data-ng-show="(forms.general.fullname.$touched || forms.general.$submitted) && forms.general.fullname.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END FULLNAME -->\n\n          <!-- START COMPANY -->\n          <div class="form-group" data-ng-class="{\'has-error\': forms.general.CompanyId.$invalid && forms.general.$submitted}">\n            <label class="control-label">{{\'APPLICATION_COMPANY\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <ui-select data-ng-model="item.CompanyId" theme="bootstrap" name="CompanyId" data-ng-disabled="checkboxes.CompanyId ? !checkboxes.CompanyId : true">\n                <ui-select-match allow-clear placeholder="{{ \'APPLICATION_COMPANY\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                <ui-select-choices repeat="company.id as company in companies | filter: $select.search">\n                  <div ng-bind-html="company.name | highlight: $select.search"></div>\n                </ui-select-choices>\n              </ui-select>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.CompanyId">\n              </span>\n            </div> -->\n            <ui-select data-ng-if="!joinPrompt" data-ng-model="item.CompanyId" theme="bootstrap" name="CompanyId" data-ng-disabled="disabled">\n              <ui-select-match allow-clear placeholder="{{ \'APPLICATION_COMPANY\' | translate }}">{{$select.selected.name}}</ui-select-match>\n              <ui-select-choices repeat="company.id as company in companies | filter: $select.search">\n                <div ng-bind-html="company.name | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n            <span data-ng-show="forms.general.CompanyId.$invalid && forms.general.$submitted" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END COMPANY -->\n\n          <!-- START STREET -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$invalid}">\n            <label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <input type="text" name="street" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="item.street" data-ng-disabled="checkboxes.street ? !checkboxes.street : true"/>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.street">\n              </span>\n            </div> -->\n            <input data-ng-if="!joinPrompt" type="text" name="street" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="item.street"/>\n            <span data-ng-show="(forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END STREET -->\n\n          <!-- START POSTALCODE -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$invalid}">\n            <label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <input type="text" name="postalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="item.postalCode" data-ng-disabled="checkboxes.postalCode ? !checkboxes.postalCode : true"/>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.postalCode">\n              </span>\n            </div> -->\n            <input data-ng-if="!joinPrompt" type="text" name="postalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="item.postalCode"/>\n            <span data-ng-show="(forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END POSTALCODE -->\n\n          <!-- START CITY -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$invalid}">\n            <label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <input type="text" name="city" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="item.city" data-ng-disabled="checkboxes.city ? !checkboxes.city : true"/>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.city">\n              </span>\n            </div> -->\n            <input data-ng-if="!joinPrompt" type="text" name="city" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="item.city"/>\n            <span data-ng-show="(forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END CITY -->\n        </div>\n        <div class="col-md-6">\n          <!-- START COUNTRY -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$invalid}">\n            <label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <input type="text" name="country" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="item.country" data-ng-disabled="checkboxes.country ? !checkboxes.country : true"/>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.country">\n              </span>\n            </div> -->\n            <input data-ng-if="!joinPrompt" type="text" name="country" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="item.country"/>\n            <span data-ng-show="(forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END COUNTRY -->\n\n          <!-- START DATEOFBIRTH -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.dateOfBirth.$touched || forms.general.$submitted) && forms.general.dateOfBirth.$invalid}">\n            <label class="control-label">{{\'APPLICATION_DATEOFBIRTH\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <input type="date" name="dateOfBirth" placeholder="{{\'APPLICATION_DATEOFBIRTH\' | translate}}" class="form-control" data-ng-model="item.dateOfBirth" data-ng-disabled="checkboxes.dateOfBirth ? !checkboxes.dateOfBirth : true"/>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.dateOfBirth">\n              </span>\n            </div> -->\n            <input data-ng-if="!joinPrompt" type="date" name="dateOfBirth" placeholder="{{\'APPLICATION_DATEOFBIRTH\' | translate}}" class="form-control" data-ng-model="item.dateOfBirth"/>\n            <span data-ng-show="(forms.general.dateOfBirth.$touched || forms.general.$submitted) && forms.general.dateOfBirth.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END DATEOFBIRTH -->\n\n          <!-- START TAGS -->\n          <div class="form-group" data-ng-class="{\'has-error\': forms.general.tags.$invalid && forms.general.$submitted}">\n            <label class="control-label">{{\'APPLICATION_TAGS\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <ui-select tagging tagging-label="" multiple=\'true\' data-ng-model="item.tags" theme="bootstrap" name="tags" data-ng-readonly="checkboxes.tags ? !checkboxes.tags : true">\n                <ui-select-match placeholder="{{ \'APPLICATION_TAGS\' | translate }}">{{$item}}</ui-select-match>\n                <ui-select-choices repeat="tag in tags | filter: $select.search">\n                  {{tag}}\n                </ui-select-choices>\n              </ui-select>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.tags">\n              </span>\n            </div> -->\n            <ui-select data-ng-if="!joinPrompt" tagging tagging-label="" multiple=\'true\' data-ng-model="item.tags" theme="bootstrap" name="tags" ng-disabled="disabled">\n              <ui-select-match placeholder="{{ \'APPLICATION_TAGS\' | translate }}">{{$item}}</ui-select-match>\n              <ui-select-choices repeat="tag in tags | filter: $select.search">\n                {{tag}}\n              </ui-select-choices>\n            </ui-select>\n            <span data-ng-show="forms.general.tags.$invalid && forms.general.$submitted" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END TAGS -->\n\n          <!-- START DESCRIPTION -->\n          <div class="form-group">\n            <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <textarea style="resize: vertical;" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description" data-ng-disabled="checkboxes.description ? !checkboxes.description : true"></textarea>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.description">\n              </span>\n            </div> -->\n            <textarea data-ng-if="!joinPrompt" style="resize: vertical;" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n          </div>\n          <!-- END DESCRIPTION -->\n        </div>\n      </div>\n    </div>\n  </div>\n  <!-- END PORTLET -->\n  <!-- START PORTLET -->\n  <div class="portlet light">\n    <div class="portlet-title">\n      <div class="caption caption-md">\n        <i class="icon-bar-chart theme-font hide"></i>\n        <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CUSTOM_FIELDS\' | translate}}</span>\n      </div>\n      <div class="inputs">\n        <div class="portlet-input input-inline input-small ">\n        </div>\n      </div>\n    </div>\n    <div class="portlet-body">\n      <div data-ng-repeat="customField in customFields">\n        <div data-ng-if="customField.type==\'text\'" class="form-group" data-ng-class="{\'has-error\': (forms.general[customField.name].$touched || forms.general.$submitted) && forms.general[customField.name].$invalid}">\n          <label class="control-label">{{customField.name}}</label>\n          <input data-ng-if="!joinPrompt" type="text" name="{{customField.name}}" placeholder="{{customField.name}}" class="form-control" data-ng-model="item.customFields[customField.id]"/>\n          <span data-ng-show="(forms.general[customField.name].$touched || forms.general.$submitted) && forms.general[customField.name].$error.required" class="help-block help-block-error">\n            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n          </span>\n        </div>\n        <div data-ng-if="customField.type==\'select\'" class="form-group" data-ng-class="{\'has-error\': forms.general[customField.name].$invalid && forms.general.$submitted}">\n          <label class="control-label">{{customField.name}}</label>\n          <ui-select data-ng-if="!joinPrompt" data-ng-model="item.customFields[customField.id]" theme="bootstrap" name="{{customField.name}}" data-ng-disabled="disabled">\n            <ui-select-match allow-clear placeholder="{{customField.name}}">{{$select.selected.value}}</ui-select-match>\n            <ui-select-choices repeat="choice.value as choice in customField.values | filter: $select.search">\n              <div ng-bind-html="choice.value | highlight: $select.search"></div>\n            </ui-select-choices>\n          </ui-select>\n          <span data-ng-show="forms.general[customField.name].$invalid && forms.general.$submitted" class="help-block help-block-error">\n            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n          </span>\n        </div>\n      </div>\n    </div>\n  </div>\n  <!-- END PORTLET -->\n  <div class="row">\n    <div class="col-md-6">\n  <!-- START PORTLET -->\n  <div class="portlet light">\n    <div class="portlet-title">\n      <div class="caption caption-md">\n        <i class="icon-bar-chart theme-font hide"></i>\n        <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_PHONES\' | translate}}</span>\n      </div>\n      <div class="inputs">\n        <div class="portlet-input input-inline input-small ">\n        </div>\n      </div>\n    </div>\n    <div class="portlet-body">\n          <!-- START PHONES -->\n          <div class="">\n          <div data-ng-if="item.Phones.length>0">\n            <!-- <label class="control-label">{{\'APPLICATION_PHONES\' | translate}}</label> -->\n          </div>\n          <div class="padding-bottom" ng-repeat="phone in item.Phones">\n            <div class="form-group">\n              <div class="input-group">\n                <input type="text" class="form-control" ng-model="phone.phone" required>\n                <span class="input-group-btn">\n                <button class="btn red" type="button"data-ng-click="removeField(\'Phones\',$index)"><i class="fa fa-times"></i></button>\n                </span>\n              </div>\n            </div>\n          </div>\n          <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField(\'Phones\')">\n            <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_PHONE\' | translate}}\n          </button>\n        </div>\n        <!-- END PHONES -->\n      </div>\n    </div>\n    <!-- END PORTLET -->\n  </div>\n  <div class="col-md-6">\n    <!-- START PORTLET -->\n    <div class="portlet light">\n      <div class="portlet-title">\n        <div class="caption caption-md">\n          <i class="icon-bar-chart theme-font hide"></i>\n          <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_EMAILS\' | translate}}</span>\n        </div>\n        <div class="inputs">\n          <div class="portlet-input input-inline input-small ">\n          </div>\n        </div>\n      </div>\n      <div class="portlet-body">\n        <!-- START EMAILS -->\n          <div class="">\n          <div data-ng-if="item.Emails.length>0">\n            <!-- <label class="control-label">{{\'APPLICATION_EMAILS\' | translate}}</label> -->\n          </div>\n          <div class="padding-bottom" ng-repeat="email in item.Emails">\n            <div class="form-group">\n              <div class="input-group">\n                <input type="email" class="form-control" ng-model="email.email" required>\n                <span class="input-group-btn">\n                <button class="btn btn-danger" type="button" data-ng-click="removeField(\'Emails\',$index)"><i class="fa fa-times"></i></button>\n                </span>\n              </div>\n            </div>\n          </div>\n          <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField(\'Emails\')">\n            <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_EMAIL\' | translate}}\n          </button>\n        </div>\n        <!-- END EMAILS -->\n      </div>\n    </div>\n    <!-- END PORTLET -->\n  </div>\n</div>\n    <!-- START PORTLET -->\n    <div class="portlet light">\n      <div class="portlet-title">\n        <div class="caption caption-md">\n          <i class="icon-bar-chart theme-font hide"></i>\n          <!-- <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_PHONES\' | translate}}</span> -->\n        </div>\n        <div class="inputs">\n          <div class="portlet-input input-inline input-small ">\n          </div>\n        </div>\n      </div>\n      <div class="portlet-body">\n          <div class="mbottom20">\n          <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONFIRM\' | translate}}" data-ng-disabled="!item.fullname"/>\n        </div>\n        <!-- <div data-ng-if="joinPrompt">\n          <p>{{\'APPLICATION_OR\' | translate}}</p>\n          <input class="btn green-haze mbottom20" type="button" value="{{\'APPLICATION_JOIN_WITH\' | translate}}" data-ng-disabled="!item.id" data-ng-click="joinContact(index)"/>\n\n          <div class="form-group" data-ng-class="{\'has-error\': forms.general.id.$invalid && forms.general.$submitted}">\n            <ui-select  data-ng-model="item.id" theme="bootstrap" name="id" data-ng-disabled="disabled">\n              <ui-select-match placeholder="{{ \'APPLICATION_EXISTING_CONTACT\' | translate }}">{{$select.selected.fullname}}</ui-select-match>\n              <ui-select-choices repeat="contact.id as contact in contacts | filter: $select.search">\n                <div ng-bind-html="contact.fullname | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n            <span data-ng-show="forms.general.id.$invalid && forms.general.$submitted" class="help-block help-block-error">\n'+"              <strong>{{'APPLICATION_WARNING' | translate}}!</strong> {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n            </span>\n          </div>\n\n        </div> -->\n      </div>\n    </div>\n    <!-- END PORTLET -->\n\n        </form>\n  </div>\n</div>\n<pre>\n  {{item | json}}\n</pre>\n"),a.put("app/main/template.queryBuilderView.html",'\n		<div class="alert alert-warning alert-group">\n				<div class="row">\n						<ui-select data-ng-model="group.boolean" theme="bootstrap" class="col-md-2" data-ng-if="group.type == \'CONDITION\'">\n							<ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n							<ui-select-choices repeat="bool.name as bool in booleans| filter: $select.search">\n								<div ng-bind-html="bool.name | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n						<button ng-click="addCondition(group.type)" class="btn btn-success col-md-2 left-margin" ><span class="glyphicon glyphicon-plus-sign" ></span> {{\'APPLICATION_ADD_\'+group.type | translate}}</button>\n						<button ng-click="addGroup(group.type)" data-ng-if="group.type == \'CONDITION\' && group.main" class="btn btn-success col-md-2 left-margin" ><span class="glyphicon glyphicon-plus-sign" ></span> {{\'APPLICATION_ADD_GROUP\' | translate}}</button>\n						<button ng-click="removeGroup()" data-ng-if="group.type == \'CONDITION\' && !group.main" class="btn btn-danger col-md-2 left-margin" ><span class="glyphicon glyphicon-minus-sign"></span> {{\'APPLICATION_REMOVE_GROUP\' | translate}}</button>\n				</div>\n				<div class="group-conditions">\n					<!-- <pre>\n						{{group | json}}\n					</pre> -->\n						<div ng-repeat="rule in group.rules | orderBy:\'index\'" class="condition" data-ng-init="initChoices(rule,rule.field.subField.api,rule.data,$index,0,\'data2\');initChoices(rule,rule.field.subField.subField.api,rule.data,$index,1,\'data3\',rule.data2);">\n								<div ng-switch="rule.hasOwnProperty(\'group\')">\n										<div ng-switch-when="true">\n												<query-builder group="rule.group" fields="fields" operators="operators" properties="properties"></query-builder>\n										</div>\n										<div ng-switch-default="ng-switch-default">\n												<div class="row">\n\n															<ui-select data-ng-model="rule.field" theme="bootstrap" class="col-md-2" data-ng-change="clearData(rule,[\'operator\',\'data\',\'data2\',\'data3\']);">\n																<ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n																<ui-select-choices repeat="field in fields | filter: $select.search">\n																	<div ng-bind-html="field.name | translate | highlight: $select.search"></div>\n																</ui-select-choices>\n															</ui-select>\n\n															<ui-select data-ng-model="rule.operator" theme="bootstrap" class="col-md-2 left-margin" data-ng-if="group.type == \'CONDITION\' && rule.field">\n																<ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n																<ui-select-choices repeat="operator.value as operator in operators[rule.field.operators]| filter: $select.search">\n																	<div ng-bind-html="operator.name | translate | highlight: $select.search"></div>\n																</ui-select-choices>\n															</ui-select>\n\n															<div class="col-md-2 left-margin" ng-if="rule.field && rule.field.propertyField==\'input\'">\n																<input type="text" ng-model="rule.data" class="form-control"/>\n															</div>\n															<div class="col-md-2 left-margin" ng-if="rule.field && rule.field.propertyField==\'number\'">\n																<input type="number" ng-model="rule.data" class="form-control"/>\n															</div>\n															<ui-select ng-if="rule.field && rule.field.propertyField==\'select\'" data-ng-model="rule.data" class="col-md-2 left-margin" theme="bootstrap" data-ng-change="clearData(rule,[\'data2\',\'data3\']);getResults(rule.field.subField.api,rule.data,$index,0)">\n																<ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n																<ui-select-choices repeat="property.value as property in properties[rule.field.value]| filter: $select.search">\n																	<div ng-bind-html="property.name | translate | highlight: $select.search"></div>\n																</ui-select-choices>\n															</ui-select>\n\n															<div class="col-md-2 left-margin" ng-if="rule.data && rule.field && rule.field.subField && rule.field.subField.propertyField==\'input\'">\n																<input type="text" ng-model="rule.data2" class="form-control"/>\n															</div>\n															<div class="col-md-2 left-margin" ng-if=" rule.data && rule.field && rule.field.subField && rule.field.subField.propertyField==\'number\'">\n																<input type="number" ng-model="rule.data2" class="form-control"/>\n															</div>\n															<ui-select ng-if="rule.data && rule.field && rule.field.subField && rule.field.subField.propertyField==\'select\'" data-ng-model="rule.data2" class="col-md-2 left-margin" theme="bootstrap" data-ng-change="clearData(rule,[\'data3\']);getResults(rule.field.subField.subField.api,rule.data,$index,1,rule.data2)">\n																<ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n																<ui-select-choices repeat="property.value as property in (rule.field.subField.api ? choices[$index][0] : properties[rule.field.subField.value])| filter: $select.search">\n																	<div ng-bind-html="property.name | translate | highlight: $select.search"></div>\n																</ui-select-choices>\n															</ui-select>\n\n															<div class="col-md-2 left-margin" ng-if="rule.data && rule.data2 && rule.field && rule.field.subField && rule.field.subField.subField && rule.field.subField.subField.propertyField==\'input\'">\n																<input type="text" ng-model="rule.data3" class="form-control"/>\n															</div>\n															<div class="col-md-2 left-margin" ng-if="rule.data && rule.data2 && rule.field && rule.field.subField && rule.field.subField.subField && rule.field.subField.subField.propertyField==\'number\'">\n																<input type="number" ng-model="rule.data3" class="form-control"/>\n															</div>\n															<ui-select ng-if="rule.data && rule.data2 && rule.field && rule.field.subField && rule.field.subField.subField && rule.field.subField.subField.propertyField==\'select\'" data-ng-model="rule.data3" class="col-md-2 left-margin" theme="bootstrap">\n																<ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n																<ui-select-choices repeat="property.value as property in (rule.field.subField.subField.api ? choices[$index][1] : properties[rule.field.subField.subField.value])| filter: $select.search">\n																	<div ng-bind-html="property.name | translate | highlight: $select.search"></div>\n																</ui-select-choices>\n															</ui-select>\n\n															<button ng-click="removeCondition($index)" class="btn btn-danger remove-condition col-md-1 left-margin"><span class="glyphicon glyphicon-minus-sign"></span></button>\n												</div>\n										</div>\n								</div>\n						</div>\n				</div>\n		</div>\n'),a.put("app/market/market.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-handbag"></i>\n						<a href="/market">Market Place</a>\n          </li>\n        </ul>\n			</div>\n		</div>\n</div>\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n  <div class="col-md-12">\n    <!-- Our Integration -->\n    <div class="headline">\n      <h3>Our Integrations</h3>\n    </div>\n    <div class="row thumbnails" data-ng-repeat="group in groupedIntegration">\n      <div class="col-md-3" data-ng-repeat="integration in group">\n        <div class="our-integrations">\n          <h3> {{integration.name}} <small> {{integration.author}}</small></h3>\n          <img data-ng-src="{{integration.logo}}" alt="{{integration.name}}" class="img-responsive"/>\n          <div class="integration-info" data-ng-if="!integration.downloading">\n            <p>\n              {{integration.description}}\n            </p>\n            <div class="pull-right">\n	            <a data-ng-disabled="isProgressing" data-ng-if="!integration.active" data-ng-click="installIntegration(integration)" href="#" class="btn btn-xs green-meadow">Install <i class="fa fa-download"></i></a>\n							<a data-ng-disabled="isProgressing" data-ng-if="integration.active" data-ng-click="uninstallIntegration(integration)" href="#" class="btn btn-xs red-sunglo">Uninstall <i class="fa fa-trash"></i></a>\n	            <a href="https://wiki.xcallymotion.com/" class="btn btn-xs grey-cascade" target="_blank">More <i class="fa fa-link"></i></a>\n            </div>\n          </div>\n					<div class="integration-info" data-ng-if="integration.downloading">\n						<div>\n							<uib-progressbar class="progress-striped active" value="percentage" type="success"><i style="color:black;">{{status}}</i></uib-progressbar>\n						</div>\n          </div>\n        </div>\n      </div>\n		</div>\n    <!--/thumbnails-->\n    <!-- //End Meer Our Team -->\n  </div>\n</div>\n'),a.put("app/motionbar/motionbar.chat.html",'<div data-ng-include="\'components/quickSidebar/quickSidebar.html\'" data-ng-controller="QuickSidebarController" class="page-quick-sidebar-wrapper" style="margin-top: -92px;"></div>\n'),a.put("app/salesforce/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-handbag"></i>\n					<a href="/salesforce/list">{{ \'APPLICATION_SALESFORCE\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-handbag font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_SALESFORCE\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="accounts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle" href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/salesforce/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'password\',\'clientId\',\'clientSecret\',\'securityToken\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Password\', \'Client Id\', \'Client Secret\', \'Security token\']" field-separator=";" filename="salesforce_accounts.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedSalesforceAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n													<div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n								<th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n								<th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="account in displayedSalesforceAccounts" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n					      <td>{{account.name}}</td>\n					      <td>{{account.username}}</td>\n								<td>{{account.remoteUri}}</td>\n								<td>{{account.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/salesforce/view/{{account.id}}/account">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n									<a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n										{{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedSalesforceAccounts.length">\n								<td colspan="7" style="text-align:center;">\n									<i>No account available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="7" class="text-center">\n									<div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n					</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/salesforce/view/view.account.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n								<span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n								<span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n								<span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n              <!-- START CLIENT ID -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.clientId.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CLIENT_ID\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="clientId" placeholder="{{\'APPLICATION_CLIENT_ID\' | translate}}" class="form-control" data-ng-model="account.clientId" required/>\n								<span data-ng-show="forms.formSetting.clientId.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CLIENT ID -->\n\n              <!-- START CLIENT SECRET -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.clientSecret.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CLIENT_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="clientSecret" placeholder="{{\'APPLICATION_CLIENT_SECRET\' | translate}}" class="form-control" data-ng-model="account.clientSecret" required/>\n								<span data-ng-show="forms.formSetting.clientSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CLIENT SECRET -->\n\n              <!-- START SECURITY TOKEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.securityToken.$invalid}">\n								<label class="control-label">{{\'APPLICATION_SECURITY_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="securityToken" placeholder="{{\'APPLICATION_SECURITY_TOKEN\' | translate}}" class="form-control" data-ng-model="account.securityToken" required/>\n								<span data-ng-show="forms.formSetting.securityToken.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END SECURITY TOKEN -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/salesforce/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createConfiguration()">\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n							<form name="formsConfiguration.info" novalidate>\n								<!-- START NAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n									<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n									<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n									<span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END NAME -->\n								<!-- START DESCRIPTION -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n									<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n								</div>\n								<!-- END DESCRIPTION -->\n\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/salesforce/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n					</li>\n          <li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n					</li>\n          <li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- SUBJECT TAB -->\n					<div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n	            <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n	              <div class="col-md-3">\n	                <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n	                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n	                <div class="form-group">\n	                  <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n	                </div>\n	              </div>\n	              <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n	                <div class="form-group">\n	                  <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n					<div class="tab-pane ui-padding" id="tab_1_2">\n						<div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n							<div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n								<!-- <pre>\n									{{descriptionItem|json}}\n								</pre> -->\n	              <div class="col-md-2">\n	                <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n	                  <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n	                <div class="form-group">\n	                  <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n	                </div>\n	              </div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n									<input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n								</div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n									<ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n	                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n								</div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n									<input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n								</div>\n	              <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n	                <div class="form-group">\n	                  <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n					<div class="tab-pane ui-padding" id="tab_1_3">\n						<div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n	            <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n	              <div class="col-md-3">\n	                <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n	                  <ui-select-choices repeat="item.name as item in accountFields | filter: $select.search">\n	                    <div ng-bind-html="item.label | highlight: $select.search"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n	                <div class="form-group">\n										<ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n		                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n		                  <ui-select-choices repeat="item.value as item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n		                    <div ng-bind-html="item.value | highlight: $select.search"></div>\n		                  </ui-select-choices>\n		                </ui-select>\n	                </div>\n	              </div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n									<div class="form-group">\n										<ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n		                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n		                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n		                    <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n		                  </ui-select-choices>\n		                </ui-select>\n									</div>\n								</div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n	                <div class="form-group">\n										<input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n	                </div>\n	              </div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n	                <div class="form-group">\n										<ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END FIELDS TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/salesforce/view/view.configurations.html",'<div ui-view class="profile-content">\n	<div class="row" data-ng-init="getConfigurations()">\n		<div class="col-md-12">\n			<div class="portlet light">\n				<div class="portlet-title  tabbable-line">\n					<div class="caption caption-md">\n						<i class="icon-globe theme-font hide"></i>\n						<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n					</div>\n					<div class="actions">\n						<div class="btn-group">\n							<a class="btn green-jungle " href="/salesforce/view/{{account.id}}/configuration" data-toggle="dropdown">\n								<i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n							</a>\n						</div>\n					</div>\n				</div>\n				<div class="portlet-body">\n					<!-- START TABLE -->\n					<table class="table table-striped table-bordered table-hover">\n						  <thead>\n							  <tr>\n							    <th>{{\'APPLICATION_NAME\' | translate}}</th>\n									<th>{{\'APPLICATION_DESCRIPTION\' | translate}}</th>\n									<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n							  </tr>\n						  </thead>\n							<tbody>\n						    <tr data-ng-repeat="configuration in configurations">\n									<td>{{configuration.name}}</td>\n									<td>{{configuration.description}}</td>\n						      <td>\n										<a class="btn default btn-xs blue-stripe" data-ng-href="/salesforce/view/{{account.id}}/configurations/settings/{{configuration.id}}">\n											{{ \'APPLICATION_SETTINGS\' | translate}}\n						        </a>\n						        <a class="btn default btn-xs red-stripe" data-ng-click="deleteConfiguration(configuration.name,configuration.id)">\n											{{ \'APPLICATION_DELETE\' | translate }}\n						        </a>\n						      </td>\n						    </tr>\n								<tr data-ng-hide="configurations.length">\n									<td colspan="5" style="text-align:center;">\n										<i>No configuration available</i>\n									</td>\n								</tr>\n						  </tbody>\n					</table>\n					<!-- END TABLE -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/salesforce/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n          <i class="icon-handbag"></i>\n          <a href="/salesforce/list">{{ \'APPLICATION_SALESFORCE\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{account.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img src="assets/images/media/salesforce.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{account.name}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{account.remoteUri}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.salesforce.view.account\')}">\n							<a ng-href="/salesforce/view/{{account.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.includes(\'main.salesforce.view.configurations\') || $state.is(\'main.salesforce.view.configuration\')}">\n							<a ng-href="/salesforce/view/{{account.id}}/configurations">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/salesforce/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-handbag"></i>\n						<a href="/salesforce/list">{{ \'APPLICATION_SALESFORCE\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n						<form name="forms.formSetting" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.username" required ng-remote-validate="/api/salesforce/accounts/validate/username"/>\n								<span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formSetting.username.$touched || forms.formSetting.$submitted) && forms.formSetting.username.$error.ngRemoteValidate" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n				        </span>\n							</div>\n							<!-- END USERNAME -->\n\n\n              <!-- START REMOTE ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required/>\n								<span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n              <!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n								<span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n              <!-- START CLIENT ID -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.clientId.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CLIENT_ID\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="clientId" placeholder="{{\'APPLICATION_CLIENT_ID\' | translate}}" class="form-control" data-ng-model="item.clientId" required/>\n								<span data-ng-show="forms.formSetting.clientId.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CLIENT ID -->\n\n              <!-- START CLIENT SECRET -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.clientSecret.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CLIENT_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="clientSecret" placeholder="{{\'APPLICATION_CLIENT_SECRET\' | translate}}" class="form-control" data-ng-model="item.clientSecret" required/>\n								<span data-ng-show="forms.formSetting.clientSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CLIENT SECRET -->\n\n              <!-- START SECURITY TOKEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.securityToken.$invalid}">\n								<label class="control-label">{{\'APPLICATION_SECURITY_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="securityToken" placeholder="{{\'APPLICATION_SECURITY_TOKEN\' | translate}}" class="form-control" data-ng-model="item.securityToken" required/>\n								<span data-ng-show="forms.formSetting.securityToken.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END SECURITY TOKEN -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n\n				</wizard>\n\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/smtp/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="/agents/list">SMTP</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-envelope font-green-sharp"></i>\n					<span class="caption-subject">SMTP</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="agents.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group" data-ng-hide="mailServers.length">\n						<a class="btn green-jungle" href="/smtp/wizard" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_SMTP\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="mailServers" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(mailServer, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="host">{{ \'APPLICATION_HOST\' | translate }}</th>\n						    <th st-sort="username">{{ \'APPLICATION_USERNAME\' | translate }}</th>\n						    <th st-sort="state">{{ \'APPLICATION_STATUS\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="mailServer in mailServers" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="agents.checked" checklist-value="mailServer.id"></td>\n								<td>{{mailServer.host}}</td>\n					      <td>{{mailServer.username}}</td>\n								<td data-ng-switch="mailServer.state">\n									<span class="label label-sm label-success" ng-switch-when="CONNECTED">\n										{{ mailServer.state}}\n									</span>\n									<span class="label label-sm label-warning" ng-switch-when="DISCONNECTED">\n										{{ mailServer.state}}\n									</span>\n									<span class="label label-sm label-danger" ng-switch-when="ERROR">\n										{{ mailServer.state}}\n									</span>\n									<span class="label label-sm label-default" ng-switch-default>\n										{{ mailServer.state}}\n									</span>\n								</td>\n								<td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/smtp/view/{{mailServer.id}}/settings">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(mailServer.username, mailServer.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="mailServers.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{\'MESSAGE_NO_AVAILABLE_SMTP_ACCOUNTS\' | translate}}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n					  </tfoot>\n					</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/smtp/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="/smtp/list">SMTP</a>\n					<!-- <i class="fa fa-angle-right"></i> -->\n				</li>\n				<!-- <li>\n					<a href="#">{{agent.fullname}}</a>\n				</li> -->\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-userpic">\n					<img ng-src="api/users/avatar/{{agent.userpic ? agent.userpic : \'unknown_avatar\'}}" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- START SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{agent.fullname}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{agent.role}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.smtp.view.settings\')}">\n							<a data-ng-href="#">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/smtp/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- START SMTP TAB -->\n					<form name="form" data-ng-submit="form.$valid && updateItem()" novalidate>\n\n						<!-- START HOST -->\n						<div class="form-group" data-ng-class="{\'has-error\': (form.host.$touched || form.$submitted) && form.host.$invalid}">\n							<label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n							<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.host" required/>\n							<span data-ng-show="(form.host.$touched || form.$submitted) && form.host.$invalid && form.host.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END HOST -->\n\n						<!-- START USERNAME -->\n						<div class="form-group" data-ng-class="{\'has-error\': (form.username.$touched || form.$submitted) && form.username.$invalid}">\n							<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.username" required/>\n							<span data-ng-show="(form.username.$touched || form.$submitted) && form.username.$invalid && form.username.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END USERNAME -->\n\n						<!-- START PASSWORD -->\n						<div class="form-group" data-ng-class="{\'has-error\': (form.password.$touched || form.$submitted) && form.password.$invalid}">\n							<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n							<span data-ng-show="(form.password.$touched || form.$submitted) && form.password.$invalid && form.password.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END PASSWORD -->\n\n						<!-- START PORT -->\n						<div class="form-group" data-ng-class="{\'has-error\': (form.port.$touched || form.$submitted) && form.port.$invalid}">\n							<label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="item.port" required/>\n							<span data-ng-show="(form.form.$touched || form.$submitted) && form.port.$invalid && form.port.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n							<span data-ng-show="(form.form.$touched || form.$submitted) && form.port.$invalid && form.port.$error.number" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END PORT -->\n\n						<!-- START SSL -->\n						<div class="form-group row">\n							<label class="col-md-3">\n								SSL\n							</label>\n							<label class="col-md-9">\n									<input type="checkbox" data-ng-model="item.ssl">\n							</label>\n						</div>\n						<!-- END SSL -->\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						<input class="btn blue-madison" type="button" value="Test" data-ng-click="test()"/>\n					</form>\n					<!-- END SMTP TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/smtp/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-envelope"></i>\n				<a href="/smpt/list">SMTP</a>\n				<!-- <i class="fa fa-angle-right"></i> -->\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="initItem()">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-envelope font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_UPDATE\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n			<form name="form" novalidate data-ng-submit="form.$valid && createItem()">\n				<!-- START HOST -->\n				<div class="form-group" data-ng-class="{\'has-error\': (form.host.$touched || form.$submitted) && form.host.$invalid}">\n					<label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n					<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.host" required/>\n					<span data-ng-show="(form.host.$touched || form.$submitted) && form.host.$invalid && form.host.$error.required" class="help-block help-block-error">\n						<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n					</span>\n				</div>\n				<!-- END HOST -->\n\n				<!-- START USERNAME -->\n				<div class="form-group" data-ng-class="{\'has-error\': (form.username.$touched || form.$submitted) && form.username.$invalid}">\n					<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n					<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.username" required/>\n					<span data-ng-show="(form.username.$touched || form.$submitted) && form.username.$invalid && form.username.$error.required" class="help-block help-block-error">\n						<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n					</span>\n				</div>\n				<!-- END USERNAME -->\n\n				<!-- START PASSWORD -->\n				<div class="form-group" data-ng-class="{\'has-error\': (form.password.$touched || form.$submitted) && form.password.$invalid}">\n					<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n					<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n					<span data-ng-show="(form.password.$touched || form.$submitted) && form.password.$error.required" class="help-block help-block-error">\n						<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n					</span>\n				</div>\n				<!-- END PASSWORD -->\n\n				<!-- START RE PASSWORD -->\n				<div class="form-group" data-ng-class="{\'has-error\': (form.rpassword.$touched || form.$submitted) && form.rpassword.$invalid}">\n					<label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n					<input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n					<span data-ng-show="(form.rpassword.$touched || form.$submitted) && form.rpassword.$error.required" class="help-block help-block-error">\n						<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n					</span>\n					<span data-ng-show="(form.rpassword.$touched || form.$submitted) && form.rpassword.$error.nxEqual" class="help-block help-block-error">\n						<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n					</span>\n				</div>\n				<!-- END RE PASSWORD -->\n\n				<!-- START PORT -->\n				<div class="form-group" data-ng-class="{\'has-error\': (form.port.$touched || form.$submitted) && form.port.$invalid}">\n					<label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n					<input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="item.port" required/>\n					<span data-ng-show="(out.$touched || form.$submitted) && form.port.$invalid && form.port.$error.required" class="help-block help-block-error">\n						<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n					</span>\n					<span data-ng-show="(out.$touched || form.$submitted) && form.port.$invalid && form.port.$error.number" class="help-block help-block-error">\n						<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n					</span>\n				</div>\n				<!-- END PORT -->\n\n				<!-- START SSL -->\n				<div class="form-group row">\n					<label class="col-md-3">\n						SSL\n					</label>\n					<label class="col-md-9">\n							<input type="checkbox" data-ng-model="item.ssl">\n					</label>\n				</div>\n				<!-- END DELETE -->\n\n				<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CREATE\' | translate}}"/>\n			</form>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/sound/list/list.html",'<div class="page-bar">\n  <ul class="page-breadcrumb">\n    <li>\n      <i class="icon-rocket"></i>\n      <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n      <i class="fa fa-angle-right"></i>\n    </li>\n    <li>\n      <i class="icon-music-tone-alt"></i>\n      <a href="#">{{ \'APPLICATION_SOUNDS\' | translate }}</a>\n    </li>\n  </ul>\n  <div class="page-toolbar">\n  </div>\n</div>\n<!-- END PAGE HEADER-->\n<!-- BEGIN PAGE CONTENT-->\n<!-- Audio Portlets -->\n<div class="headline">\n  <h3><i class="icon-music-tone-alt sounds-title-icon"></i> {{ \'APPLICATION_SOUNDS\' | translate }}</h3>\n</div>\n<div class="portlet light bg-inverse">\n  <div class="portlet-title collapsible" ng-click="isCollapsed = !isCollapsed">\n    <div class="caption">\n      <i class="icon-puzzle font-red-flamingo"></i>\n      <span class="caption-subject bold font-red-flamingo uppercase">\n      {{\'APPLICATION_FILE_UPLOAD\' | translate}} </span>\n    </div>\n    <div class="tools">\n      <a href="" ng-class="{\'collapse\': !isCollapsed, \'expand\' : isCollapsed}">\n      </a>\n      <a href="" class="fullscreen">\n      </a>\n    </div>\n  </div>\n  <div class="portlet-body" ng-slide-down="!isCollapsed">\n    <div class="row" nv-file-drop="" uploader="uploader" filters="queueLimit, customFilter">\n    	<div class="col-md-4">\n    		<div class="portlet light bordered">\n    			<div class="portlet-title">\n    				<div class="caption font-green-sharp">\n    					<i class="icon-settings font-green-sharp"></i>\n    					<span class="caption-subject bold uppercase">{{\'APPLICATION_SELECT_FILES\' | translate}}</span>\n    					<span class="caption-helper hide"></span>\n    				</div>\n    				<div class="actions">\n    				</div>\n    			</div>\n    			<div class="portlet-body">\n    				<div ng-show="uploader.isHTML5">\n    					<div class="file-drop-zone margin-bottom-20" nv-file-over="" uploader="uploader" over-class="file-drop-zone-over">\n    						Base drop zone\n    					</div>\n    				</div>\n    				<span class="btn default btn-file">\n    				<span class="fileinput-new">\n    				{{\'APPLICATION_FILE_UPLOAD\' | translate}}</span>\n    				<input type="file" nv-file-select="" uploader="uploader" />\n    				</span>\n    				<span class="btn default btn-file">\n    				<span class="fileinput-new">\n    				{{\'APPLICATION_MULTI_FILE_UPLOAD\' | translate}}</span>\n    				<input type="file" nv-file-select="" uploader="uploader" multiple  /><br/>\n          </span>\n          <p>\n            </br>\n            {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} <b>wav, mp3, gsm, ogg</b>.\n          </p>\n          <p>\n            {{ \'MESSAGE_MAXIMUM_SOUND_UPLOAD_SIZE\' | translate }} <b>15 Mb</b>.\n          </p>\n    			</div>\n    		</div>\n    	</div>\n    	<div class="col-md-8">\n    		<div class="portlet light bordered">\n    			<div class="portlet-title">\n    				<div class="caption font-green-sharp">\n    					<i class="icon-settings font-green-sharp"></i>\n    					<span class="caption-subject bold uppercase">{{\'APPLICATION_UPLOAD_QUEUE\' | translate}}</span>\n    					<span class="caption-helper">{{\'APPLICATION_QUEUE_LENGTH\' | translate}}: {{ uploader.queue.length }}</span>\n    				</div>\n    				<div class="actions">\n    				</div>\n    			</div>\n    			<div class="portlet-body">\n    				<div class="table-scrollable table-scrollable-borderless">\n    					<table class="table table-hover table-light">\n    						<thead>\n    							<tr class="uppercase">\n    								<th width="50%">{{\'APPLICATION_NAME\' | translate}}</th>\n    								<th ng-show="uploader.isHTML5">{{\'APPLICATION_SIZE\' | translate}}</th>\n    								<th ng-show="uploader.isHTML5">{{\'APPLICATION_PROGRESS\' | translate}}</th>\n    								<th>{{\'APPLICATION_STATUS\' | translate}}</th>\n    								<th>{{\'APPLICATION_MESSAGE\' | translate}}</th>\n    								<th>{{\'APPLICATION_ACTIONS\' | translate}}</th>\n    							</tr>\n    						</thead>\n    						<tbody>\n    							<tr ng-repeat="item in uploader.queue">\n    								<td><strong>{{ item.file.name }}</strong></td>\n    								<td ng-show="uploader.isHTML5" nowrap>{{ item.file.size/1024/1024|number:2 }} MB</td>\n    								<td ng-show="uploader.isHTML5">\n    									<div class="progress progress-sm" style="margin-bottom: 0;">\n    										<div class="progress-bar progress-bar-info" role="progressbar" ng-style="{ \'width\': item.progress + \'%\' }"></div>\n    									</div>\n    								</td>\n    								<td class="text-center">\n    									<span ng-show="item.isSuccess" class="text-success"><i class="glyphicon glyphicon-ok"></i></span>\n    									<span ng-show="item.isCancel" class="text-info"><i class="glyphicon glyphicon-ban-circle"></i></span>\n    									<span ng-show="item.isError" class="text-danger"><i class="glyphicon glyphicon-remove"></i></span>\n    									<span ng-show="item.isUploading" class="text-info"><i class="glyphicon glyphicon-upload"></i></span>\n    								</td>\n    								<td class="text-center">\n    									<span ng-show="item.responseMessage" class="text-danger">{{item.responseMessage}}</span>\n    								</td>\n    								<td nowrap>\n    									<button type="button" class="btn btn-success btn-xs" ng-click="item.upload()" ng-disabled="item.isReady || item.isUploading || item.isSuccess">\n    									<span class="glyphicon glyphicon-upload"></span> {{\'APPLICATION_UPLOAD\' | translate}}\n    									</button>\n    									<button type="button" class="btn btn-warning btn-xs" ng-click="item.cancel()" ng-disabled="!item.isUploading">\n    									<span class="glyphicon glyphicon-ban-circle"></span> {{\'APPLICATION_CANCEL\' | translate}}\n    									</button>\n    									<button type="button" class="btn btn-danger btn-xs" ng-click="item.remove()">\n    									<span class="glyphicon glyphicon-trash"></span> {{\'APPLICATION_REMOVE\' | translate}}\n    									</button>\n    								</td>\n    							</tr>\n    						</tbody>\n    					</table>\n    				</div>\n    				<div>\n    					<p>{{\'APPLICATION_UPLOAD_QUEUE_PROGRESS\' | translate}}:</p>\n    					<div class="progress progress-sm" style="">\n    						<div class="progress-bar progress-bar-info" role="progressbar" ng-style="{ \'width\': uploader.progress + \'%\' }"></div>\n    					</div>\n    				</div>\n    				<button type="button" class="btn btn-success btn-s" ng-click="uploader.uploadAll()" ng-disabled="!uploader.getNotUploadedItems().length">\n    				<span class="glyphicon glyphicon-upload"></span> {{\'APPLICATION_UPLOAD_ALL\' | translate}}\n    				</button>\n    				<button type="button" class="btn btn-warning btn-s" ng-click="uploader.cancelAll()" ng-disabled="!uploader.isUploading">\n    				<span class="glyphicon glyphicon-ban-circle"></span> {{\'APPLICATION_CANCEL_ALL\' | translate}}\n    				</button>\n    				<button type="button" class="btn btn-danger btn-s" ng-click="uploader.clearQueue()" ng-disabled="!uploader.queue.length">\n    				<span class="glyphicon glyphicon-trash"></span> {{\'APPLICATION_REMOVE_ALL\' | translate}}\n    				</button>\n    			</div>\n    		</div>\n    	</div>\n    </div>\n  </div>\n</div>\n<div class="row thumbnails" data-ng-init="initList()">\n  <div class="row" ng-show="sounds.length == 0">\n    <div class="col-md-12 page-404">\n      <div class="details">\n        <h3>{{ \'MESSAGE_NO_SOUNDS\' | translate }}</h3>\n        <p>\n          <a href="/">\n          {{ \'MESSAGE_RETURN_HOME\' | translate }} </a>\n          {{ \'MESSAGE_OR_UPLOAD_SOUND_FILE\' | translate }}\n        </p>\n      </div>\n    </div>\n  </div>\n  <div class="audio-portlet-wrapper animate-repeat" ng-repeat="sound in sounds">\n    <div class="audio-portlet">\n      <div class="audio-portlet-title"><a href="#" editable-text="sound.display_name" onbeforesave="updateAudio(sound.id,{display_name : $data})">{{ sound.display_name || "Empty" }}</a></div>\n      <img src="../assets/images/note_placeholder.png" alt="" class="img-responsive"/>\n      <div class="file-info">\n        <div class="audio-tag-wrapper">\n          <audio controls ng-src="{{getSecureSrc(audioSources[sound.id])}}" preload="none">\n            {{ \'MESSAGE_AUDIO_NOT_SUPPORTED\' | translate }}\n          </audio>\n        </div>\n        <p id="description_div">\n          <a href="#" editable-text="sound.description" onbeforesave="updateAudio(sound.id,{description : $data})">{{ sound.description || "Empty" }}</a>\n        </p>\n        <p class="float-right">\n            <button class="btn btn-xs green-meadow" tooltip-html-unsafe="<ul class=\'list-unstyled\'><li><b>Format : </b>{{sound.original_format}}</li><li><b>Duration : </b>{{sound.original_duration | date: \'mm:ss\'}}</li><li><b>Channels : </b>{{sound.original_channelCount}}</li><li><b>Bitrate : </b>{{sound.original_bitRate/1024}} kbs</li><li><b>Sample Rate : </b>{{sound.original_sampleRate/1000}} KHz</li></ul>"><i class="icon-list"></i></button>\n            <a class="btn btn-xs blue-hoki" href="{{getSecureDownloadSrc(audioSources[sound.id])}}" download="{{sound.name+\'.\'+sound.original_format}}" target="_self" tooltip="Download"><i class="icon-cloud-download"></i></a>\n            <button class="btn btn-xs red-sunglo" ng-click="delete(sound.display_name, sound.id)" tooltip="Delete"><i class="icon-close" ></i></button>\n        </p>\n      </div>\n    </div>\n  </div>\n</div>\n<!-- End Audio Portlets -->\n'),a.put("app/sound/sound.html","<!-- BEGIN PAGE CONTENT-->\n<div ui-view></div>\n<!-- END PAGE CONTENT-->\n"),a.put("app/square/odbc/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/square/odbcs/list">{{ \'APPLICATION_ODBCS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ODBCS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Odbcs.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ODBC\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/square/odbcs/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getOdbcs([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="square_odbcs.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedOdbcs" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.odbcsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="odbcByPage in odbcsByPage | filter: $select.search">\n													<div ng-bind-html="odbcByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(odbc, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="odbc in displayedOdbcs" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="odbc.defaultEntry" type="checkbox" checklist-model="Odbcs.checked" checklist-value="odbc.id"></td>\n								<td>{{odbc.name}}</td>\n					      <td>{{odbc.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/square/odbcs/view/{{odbc.id}}/settings" data-ng-class="{\'disabled\': odbc.defaultEntry}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(odbc.name,odbc.id)" data-ng-class="{\'disabled\': odbc.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedOdbcs.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_ODBCS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.odbcsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/square/odbc/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getOdbc()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/square/odbcs/list">{{ \'APPLICATION_ODBCS\' | translate }}</a>\n					<i data-ng-show="odbc" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="odbc">\n					<a href="#">{{odbc.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/odbc.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{odbc.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.square.odbcs.view.settings\')}">\n							<a data-ng-href="/square/odbcs/view/{{odbc.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/square/odbc/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_ODBC\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateOdbc()" novalidate>\n\n							<!-- START NAME -->\n				      <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n				        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n				        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="odbc.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n				        </span>\n				      </div>\n				      <!-- END NAME -->\n\n							<!-- START DSN -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DSN\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="dsn" placeholder="{{\'APPLICATION_DSN\' | translate}}" class="form-control" data-ng-model="odbc.dsn" required/>\n								<span data-ng-show="(forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END DSN -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="odbc.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/square/odbc/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-docs"></i>\n				<a href="/square/odbcs/list">{{ \'APPLICATION_ODBCS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/square/odbcs/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-docs font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_ODBC\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.odbc.$valid)">\n			    <form name="forms.odbc" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.odbc.name.$touched || forms.odbc.$submitted) && forms.odbc.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.odbc.name.$touched || forms.odbc.$submitted) && forms.odbc.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n						<!-- START DSN -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_DSN\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="dsn" placeholder="{{\'APPLICATION_DSN\' | translate}}" class="form-control" data-ng-model="item.dsn" required/>\n							<span data-ng-show="(forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END DSN -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n			      <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/square/project/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n        <li>\n          <i class="fa fa-slack"></i>\n          <a href="/square/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n        </li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_PROJECTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Projects.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_PROJECT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/square/projects/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getProjects([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="square_projects.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedProjects" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.projectsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="projectByPage in projectsByPage | filter: $select.search">\n													<div ng-bind-html="projectByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="project in displayedProjects" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="project.defaultEntry" type="checkbox" checklist-model="Projects.checked" checklist-value="project.id"></td>\n								<td>{{project.name}}</td>\n					      <td>{{project.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/square/projects/view/{{project.id}}" data-ng-class="{\'disabled\': project.defaultEntry}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(project.name,project.id)" data-ng-class="{\'disabled\': project.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedProjects.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_PROJECTS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.projectsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/square/project/view/view.html",'<div class="row" data-ng-init="getProject()">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="fa fa-superscript"></i>\n						<a href="/square/projects">{{ \'APPLICATION_CALLYSQUARE\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="fa fa-slack"></i>\n						<a href="/square/projects">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n            <i class="fa fa-angle-right"></i>\n					</li>\n          <li>\n						<a ng-href="/square/projects/view/{{squareProject.id}}">{{squareProject.name}}</a>\n          </li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n		<div id="geEditor" class="geEditor"></div>\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n<script>\n\n\n</script>\n'),a.put("app/square/project/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-docs"></i>\n				<a href="/square/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/square/projects/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-docs font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_PROJECT\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.project.$valid)">\n			    <form name="forms.project" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.project.name.$touched || forms.project.$submitted) && forms.project.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.project.name.$touched || forms.project.$submitted) && forms.project.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n			      <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/sugarcrm/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-handbag"></i>\n					<a href="/sugarcrm/list">{{ \'APPLICATION_SUGARCRM\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-handbag font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_SUGARCRM\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="accounts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle" href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/sugarcrm/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'password\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Password\']" field-separator=";" filename="sugarcrm_accounts.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedSugarcrmAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n													<div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n								<th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n								<th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="account in displayedSugarcrmAccounts" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n					      <td>{{account.name}}</td>\n					      <td>{{account.username}}</td>\n								<td>{{account.remoteUri}}</td>\n								<td>{{account.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/sugarcrm/view/{{account.id}}/account">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n									<a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n										{{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedSugarcrmAccounts.length">\n								<td colspan="7" style="text-align:center;">\n									<i>No account available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="7" class="text-center">\n									<div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n					</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/sugarcrm/view/view.account.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n								<span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n								<span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n								<span data-ng-show="forms.formSetting.apiKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END API KEY -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/sugarcrm/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createConfiguration()">\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n							<form name="formsConfiguration.info" novalidate>\n								<!-- START NAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n									<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n									<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n									<span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END NAME -->\n								<!-- START DESCRIPTION -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n									<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n								</div>\n								<!-- END DESCRIPTION -->\n\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/sugarcrm/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n					</li>\n          <li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n					</li>\n          <li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- SUBJECT TAB -->\n					<div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n	            <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n	              <div class="col-md-3">\n	                <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n	                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n	                <div class="form-group">\n	                  <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n	                </div>\n	              </div>\n	              <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n	                <div class="form-group">\n	                  <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n					<div class="tab-pane ui-padding" id="tab_1_2">\n						<div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n							<div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n								<!-- <pre>\n									{{descriptionItem|json}}\n								</pre> -->\n	              <div class="col-md-2">\n	                <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n	                  <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n	                <div class="form-group">\n	                  <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n	                </div>\n	              </div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n									<input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n								</div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n									<ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n	                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n								</div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n									<input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n								</div>\n	              <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n	                <div class="form-group">\n	                  <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n					<div class="tab-pane ui-padding" id="tab_1_3">\n						<div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n	            <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n	              <div class="col-md-3">\n	                <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n	                  <ui-select-choices repeat="item.name as item in accountFields | filter: $select.search">\n	                    <div ng-bind-html="item.label | highlight: $select.search"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n	                <div class="form-group">\n										<ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n		                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n		                  <ui-select-choices repeat="item.value as item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n		                    <div ng-bind-html="item.name | highlight: $select.search"></div>\n		                  </ui-select-choices>\n		                </ui-select>\n	                </div>\n	              </div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n									<div class="form-group">\n										<ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n		                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n		                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n		                    <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n		                  </ui-select-choices>\n		                </ui-select>\n									</div>\n								</div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n	                <div class="form-group">\n										<input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n	                </div>\n	              </div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n	                <div class="form-group">\n										<ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END FIELDS TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
+a.put("app/sugarcrm/view/view.configurations.html",'<div ui-view class="profile-content">\n	<div class="row" data-ng-init="getConfigurations()">\n		<div class="col-md-12">\n			<div class="portlet light">\n				<div class="portlet-title  tabbable-line">\n					<div class="caption caption-md">\n						<i class="icon-globe theme-font hide"></i>\n						<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n					</div>\n					<div class="actions">\n						<div class="btn-group">\n							<a class="btn green-jungle " href="/sugarcrm/view/{{account.id}}/configuration" data-toggle="dropdown">\n								<i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n							</a>\n						</div>\n					</div>\n				</div>\n				<div class="portlet-body">\n					<!-- START TABLE -->\n					<table class="table table-striped table-bordered table-hover">\n						  <thead>\n							  <tr>\n							    <th>{{\'APPLICATION_NAME\' | translate}}</th>\n									<th>{{\'APPLICATION_DESCRIPTION\' | translate}}</th>\n									<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n							  </tr>\n						  </thead>\n							<tbody>\n						    <tr data-ng-repeat="configuration in configurations">\n									<td>{{configuration.name}}</td>\n									<td>{{configuration.description}}</td>\n						      <td>\n										<a class="btn default btn-xs blue-stripe" data-ng-href="/sugarcrm/view/{{account.id}}/configurations/settings/{{configuration.id}}">\n											{{ \'APPLICATION_SETTINGS\' | translate}}\n						        </a>\n						        <a class="btn default btn-xs red-stripe" data-ng-click="deleteConfiguration(configuration.name,configuration.id)">\n											{{ \'APPLICATION_DELETE\' | translate }}\n						        </a>\n						      </td>\n						    </tr>\n								<tr data-ng-hide="configurations.length">\n									<td colspan="5" style="text-align:center;">\n										<i>No configuration available</i>\n									</td>\n								</tr>\n						  </tbody>\n					</table>\n					<!-- END TABLE -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/sugarcrm/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n          <i class="icon-handbag"></i>\n          <a href="/sugarcrm/list">{{ \'APPLICATION_SUGARCRM\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{account.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img src="assets/images/media/sugarcrm.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{account.name}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{account.remoteUri}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.sugarcrm.view.account\')}">\n							<a ng-href="/sugarcrm/view/{{account.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.includes(\'main.sugarcrm.view.configurations\') || $state.is(\'main.sugarcrm.view.configuration\')}">\n							<a ng-href="/sugarcrm/view/{{account.id}}/configurations">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/sugarcrm/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-handbag"></i>\n						<a href="/sugarcrm/list">{{ \'APPLICATION_SUGARCRM\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n						<form name="forms.formSetting" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.username" required/>\n								<span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n\n              <!-- START REMOTE ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required ng-remote-validate="/api/sugarcrm/accounts/validate/remoteUri"/>\n								<span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n                <span data-ng-show="(forms.formSetting.remoteUri.$touched || forms.formSetting.$submitted) && forms.formSetting.remoteUri.$error.ngRemoteValidate" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n				        </span>\n							</div>\n							<!-- END USERNAME -->\n\n              <!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n								<span data-ng-show="forms.formSetting.apiKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n\n				</wizard>\n\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/tag/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_TAG\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.tag" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.tag.name.$touched || forms.tag.$submitted) && forms.tag.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.tag.name.$touched || forms.tag.$submitted) && forms.tag.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.tag.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/tag/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-tag"></i>\n					<a href="/tags/list">{{ \'APPLICATION_TAGS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TAGS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Tags.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<button class="btn green-jungle " ng-click="create()">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_TAG\' | translate }}\n						</button>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getTags([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="tags.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedTags" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.tagsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="tagByPage in tagsByPage | filter: $select.search">\n													<div ng-bind-html="tagByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(tag, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="tag in displayedTags" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="tag.defaultEntry" type="checkbox" checklist-model="Tags.checked" checklist-value="tag.id"></td>\n								<td>{{tag.name}}</td>\n					      <td>{{tag.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/tags/view/{{tag.id}}/settings" data-ng-class="{\'disabled\': tag.defaultEntry}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(tag.name,tag.id)" data-ng-class="{\'disabled\': tag.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedTags.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_TAGS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.tagsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/tag/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getTag()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-tag"></i>\n					<a href="/tags/list">{{ \'APPLICATION_TAGS\' | translate }}</a>\n					<i data-ng-show="tag" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="tag">\n					<a href="#">{{tag.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/tag.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{tag.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.tags.view.settings\')}">\n							<a data-ng-href="/tags/view/{{tag.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/tag/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_TAG\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateTag()" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="tag.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="tag.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/team/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-shield"></i>\n						<a href="#">{{ \'APPLICATION_TEAMS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-shield font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TEAMS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="teams.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_TEAM\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<!-- <li>\n								<a href="#">\n								<i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n							</li> -->\n							<li>\n								<a href="/teams/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n							<!-- <li>\n								<a href="#">\n								<i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n							</li> -->\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getTeams([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="teams.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedTeams" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.teamsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="teamByPage in teamsByPage | filter: $select.search">\n													<div ng-bind-html="teamByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="team in displayedTeams" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="teams.checked" checklist-value="team.id"></td>\n					      <td>{{team.name}}</td>\n								<td>{{team.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/teams/view/{{team.id}}/settings" data-ng-class="{\'disabled\': team.defaultEntry}">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(team.name, team.id)" data-ng-class="{\'disabled\': team.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n              <tr data-ng-hide="displayedTeams.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No teams available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.teamsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/team/view/view.agents.html",'<div class="row" data-ng-init="initAgents()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n			<!-- GENERAL TAB -->\n				<!-- BEGIN PORTLET-->\n					<!-- BEGIN FORM-->\n					<form action="index.html" class="form-horizontal form-row-seperated">\n						<div class="form-body">\n							<div class="form-group last">\n								<div class="col-md-9" id="multi-select-team">\n								</div>\n							</div>\n						</div>\n					</form>\n					<!-- END FORM-->\n				<!-- END PORTLET-->\n			<!-- END GENERAL TAB -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/team/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-shield"></i>\n					<a href="/teams/list">{{ \'APPLICATION_TEAMS\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{team.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img ng-src="assets/images/media/team.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{team.name}}\n					</div>\n\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.teams.view.settings\')}">\n							<a data-ng-href="/teams/view/{{team.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.teams.view.agents\')}">\n							<a data-ng-href="/teams/view/{{team.id}}/agents">\n							<i class="icon-users"></i>\n							{{ \'APPLICATION_AGENTS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/team/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n			</div>\n\n			<div class="portlet-body">\n				<!-- PERSONAL INFO TAB -->\n				<div>\n\n					<form name="forms.info" data-ng-submit="updateItem()" novalidate>\n						<!-- START NAME -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n							<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="team.name" required/>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="team.description"/>\n						</div>\n						<!-- END DESCRIPTION -->\n\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n					</form>\n				</div>\n				<!-- END PERSONAL INFO TAB -->\n			</div>\n		</div>\n	</div>\n</div>\n'),
+a.put("app/team/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n            <i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-shield"></i>\n						<a href="/teams/list">{{ \'APPLICATION_TEAMS\' | translate }}</a>\n            <i class="fa fa-angle-right"></i>\n					</li>\n          <li>\n						<i class="icon-user-following"></i>\n						<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div id="team" class="row" data-ng-init="getAgents()">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TEAM\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_TEAM_INFO\' | translate}}" canexit="formValidation(forms.info.$valid)">\n						<form name="forms.info" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/template/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-docs"></i>\n						<a href="#">{{ \'APPLICATION_TEMPLATES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TEMPLATES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Templates.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_TEMPLATE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/templates/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getTemplates([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Name\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="mail_templates.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedTemplates" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.templatesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="queueByPage in templatesByPage | filter: $select.search">\n													<div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(template, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<!-- <th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate }}</th>\n								<th st-sort="timeout">{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}</th> -->\n						    <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="template in displayedTemplates">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="Templates.checked" checklist-value="template.id"></td>\n					      <td>{{template.name}}</td>\n								<td>{{template.description}}</td>\n								<!-- <td>{{template.strategy | uppercase}}</td>\n								<td>{{template.timeout}}</td> -->\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/templates/view/{{template.id}}/settings">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(template.name, template.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedTemplates.length">\n								<td colspan="6" class="text-center">\n									<i>No available templates</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<!-- <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td/> -->\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="67" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.templatesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/template/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initItem()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/mail/templates/list">{{ \'APPLICATION_TEMPLATES\' | translate }}</a>\n					<i data-ng-show="item" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="item">\n					<a href="#">{{item.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/template.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{item.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.templates.view.settings\')}">\n							<a data-ng-href="/mail/templates/view/{{item.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/template/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n\n				<form name="form" data-ng-submit="form.$valid && updateItem()" class="form-horizontal" novalidate>\n					<!-- START NAME -->\n					<div class="form-group" data-ng-class="{\'has-error\': form.name.$invalid && form.$submitted}">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">{{\'APPLICATION_NAME\' | translate}}:<span class="required" aria-required="true">*</span></label>\n								</div>\n								<div class="col-md-11">\n									<input type="text" name="name" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_NAME\' | translate}}..." data-ng-model="item.name" required>\n									<span data-ng-show="form.name.$invalid && form.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END NAME -->\n\n					<!-- START DESCRIPTION -->\n					<div class="form-group" data-ng-class="{\'has-error\': form.description.$invalid && form.$submitted}">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}:</label>\n								</div>\n								<div class="col-md-11">\n									<input type="text" name="description" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}..." rows="8" data-ng-model="item.description">\n									<span data-ng-show="form.description.$invalid && form.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END NAME -->\n\n					<hr>\n\n					<!-- START SUBJECT -->\n					<div class="form-group row" data-ng-class="{\'has-error\': form.subject.$invalid && form.$submitted}">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-4">\n									<label class="control-label pull-right">{{\'APPLICATION_SUBJECT\' | translate}}:</label>\n								</div>\n								<div class="col-md-8">\n									<input type="text" name="subject" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_SUBJECT\' | translate}}..." rows="8" data-ng-model="item.subject">\n									<span data-ng-show="form.subject.$invalid && form.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END SUJBECT -->\n\n					<!-- START HTML -->\n					<div class="form-group row" data-ng-class="{\'has-error\': form.text.$invalid && form.$submitted}">\n\n						<div class="col-md-4">\n							<div class="portlet light bordered">\n								<div class="portlet-title">\n									<div class="caption font-green-sharp">\n										<i class="icon-pencil"></i>{{\'APPLICATION_VARIABLES\' | translate}}\n									</div>\n								</div>\n								<div class="portlet-body">\n									<uib-accordion>\n								    <uib-accordion-group heading="{{group.title | translate}}" data-ng-repeat="group in groups">\n								      {{group.content | translate}}\n											<ol>\n												<li data-ng-repeat="variable in group.variables">\n													 {{variable}}\n												</li>\n											</ol>\n								    </uib-accordion-group>\n								  </uib-accordion>\n								</div>\n							</div>\n						</div>\n						<div class="col-md-8">\n							<div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="item.html" name="html"></div>\n								<span data-ng-show="form.text.$invalid && form.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n						</div>\n					</div>\n					<!-- END HTML -->\n\n					<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n				</form>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/template/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			\n      <li>\n				<i class="icon-docs"></i>\n				<a href="/mail/templates/list">{{ \'APPLICATION_TEMPLATES\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="initWizard()">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-docs font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_TEMPLATES\' | translate }} FORM</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n			<form name="form" data-ng-submit="form.$valid && createItem()" class="form-horizontal" novalidate>\n				<!-- START HEAD -->\n				<div class="form">\n					<!-- START NAME -->\n					<div class="form-group" data-ng-class="{\'has-error\': form.name.$invalid && form.$submitted}">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">{{\'APPLICATION_NAME\' | translate}}:<span class="required" aria-required="true">*</span></label>\n								</div>\n								<div class="col-md-11">\n									<input type="text" name="name" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_NAME\' | translate}}..." data-ng-model="item.name" required>\n									<span data-ng-show="form.name.$invalid && form.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END NAME -->\n\n					<!-- START DESCRIPTION -->\n					<div class="form-group" data-ng-class="{\'has-error\': form.description.$invalid && form.$submitted}">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}:</label>\n								</div>\n								<div class="col-md-11">\n									<input type="text" name="description" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}..." rows="8" data-ng-model="item.description">\n									<span data-ng-show="form.description.$invalid && form.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END NAME -->\n\n					<!-- START SUBJECT -->\n					<div class="form-group" data-ng-class="{\'has-error\': form.subject.$invalid && form.$submitted}">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">{{\'APPLICATION_SUBJECT\' | translate}}:</label>\n								</div>\n								<div class="col-md-11">\n									<input type="text" name="subject" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_SUBJECT\' | translate}}..." rows="8" data-ng-model="item.subject">\n									<span data-ng-show="form.subject.$invalid && form.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END SUJBECT -->\n\n					<!-- START HTML -->\n					<div class="form-group row" data-ng-class="{\'has-error\': form.text.$invalid && form.$submitted}">\n						<div class="col-md-4">\n							<div class="portlet light bordered">\n								<div class="portlet-title">\n									<div class="caption font-green-sharp">\n										<i class="icon-pencil"></i>{{\'APPLICATION_VARIABLES\' | translate}}\n									</div>\n								</div>\n								<div class="portlet-body">\n									<uib-accordion>\n								    <uib-accordion-group heading="{{group.title | translate}}" data-ng-repeat="group in groups">\n								      {{group.content | translate}}\n											<ol>\n												<li data-ng-repeat="variable in group.variables">\n													 {{variable}}\n												</li>\n											</ol>\n								    </uib-accordion-group>\n								  </uib-accordion>\n								</div>\n							</div>\n						</div>\n						<div class="col-md-8">\n							<div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="item.html" name="html"></div>\n								<span data-ng-show="form.text.$invalid && form.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n						</div>\n					</div>\n					<!-- END HTML -->\n\n				</div>\n				<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n			</form>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/trigger/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-bulb"></i>\n						<a href="#">{{ \'APPLICATION_TRIGGERS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-bulb font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TRIGGERS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Triggers.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_TRIGGER\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/triggers/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getTriggers([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="triggers.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedTriggers" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.TriggersByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="TriggerByPage in TriggersByPage | filter: $select.search">\n													<div ng-bind-html="TriggerByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(Trigger, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="channel">{{ \'APPLICATION_CHANNEL\' | translate }}</th>\n								<th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="Trigger in displayedTriggers">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="Triggers.checked" checklist-value="Trigger.id"></td>\n					      <td>{{Trigger.name}}</td>\n								<td>{{Trigger.description}}</td>\n								<td>{{Trigger.channel | capitalize}}</td>\n								<td>\n									<input\n										data-ng-change="updateItem(Trigger.id, Trigger.status)",\n								    bs-switch\n								    ng-model="Trigger.status"\n								    type="checkbox"\n								    switch-active="{{ isActive }}"\n								    switch-on-text="{{ onText }}"\n								    switch-off-text="{{ offText }}"\n								    switch-on-color="{{ onColor }}"\n								    switch-off-color="{{ offColor }}"\n								    switch-animate="{{ animate }}"\n								    switch-size="{{ size }}"\n								    switch-label="{{ label }}"\n								    switch-icon="{{ icon }}"\n								    switch-radio-off="{{ radioOff }}"\n								    switch-label-width="{{ labelWidth }}"\n								    switch-handle-width="{{ handleWidth }}">\n								</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/triggers/view/{{Trigger.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(Trigger.name, Trigger.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedTriggers.length">\n								<td colspan="6" class="text-center">\n									<i>No available triggers</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="channel" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CHANNEL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.TriggersByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trigger/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView();getProperties();">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-bulb"></i>\n					<a href="/triggers/list">{{ \'APPLICATION_TRIGGERS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="trigger"></i>\n				</li>\n				<li data-ng-show="trigger">\n					<a href="#">{{ trigger.description || trigger.name }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/trigger.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ trigger.name }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{ trigger.description }}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.triggers.view.settings\')}">\n							<a href="/triggers/view/{{trigger.id}}/settings">\n							<i class="icon-bulb"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trigger/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_CONDITIONS\' | translate}} & {{\'APPLICATION_ACTIONS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<!-- <pre>\n					{{conditionsData.query | json}}\n				</pre>\n				<pre>\n					{{actionsData.query | json}}\n				</pre> -->\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateTrigger()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="trigger.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="trigger.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n					<!-- <pre>\n						{{conditionsFilter | json}}\n					</pre> -->\n					<div class="tab-pane" id="tab_1_2">\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$triggers.operators" properties="properties[trigger.channel]"></query-builder>\n							</div>\n						</div>\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[trigger.channel]"></query-builder>\n							</div>\n						</div>\n\n						<input class="btn green-haze" type="button" value="{{\'APPLICATION_UPDATE\' | translate}}" data-ng-click="updateTrigger()"/>\n					</div>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
+a.put("app/trigger/wizard/wizard.html",'\n<div class="row" data-ng-init="getProperties()">\n	<div class="col-md-12">\n		<!-- BEGIN PAGE HEADER-->\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-bulb"></i>\n					<a href="/triggers/list">{{ \'APPLICATION_TRIGGERS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n		<!-- END PAGE HEADER-->\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-bulb font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TRIGGERS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n						<form name="forms.general" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name"/ required>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n						</form>\n					</wz-step>\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}">\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_CHANNEL\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<div class="form-group"  >\n									<label class="control-label">{{ \'APPLICATION_CHANNEL\' | translate }}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="item.channel" name="channel" theme="bootstrap" required>\n										<ui-select-match placeholder="{{ \'APPLICATION_CHANNEL\' | translate }}">{{$select.selected | capitalize}}</ui-select-match>\n										<ui-select-choices repeat="channel in $triggers.channels | filter: $select.search">\n											<div ng-bind-html="channel | highlight: $select.search | capitalize"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n							</div>\n						</div>\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$triggers.operators" properties="properties[item.channel]"></query-builder>\n							</div>\n						</div>\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[item.channel]"></query-builder>\n							</div>\n						</div>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trunk/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-link"></i>\n					<a href="/trunks/list">{{ \'APPLICATION_TRUNKS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-link font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TRUNKS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="trunks.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_TRUNK\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/trunks/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getTrunks([\'name\', \'host\', \'context\', \'description\'])" csv-header="[\'Name\', \'Host\', \'Context\', \'Description\']" field-separator=";" filename="trunks.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedTrunks" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.trunksByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="trunkByPage in trunksByPage | filter: $select.search">\n													<div ng-bind-html="trunkByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(trunk, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="host">{{ \'APPLICATION_HOST\' | translate }}</th>\n								<th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="trunk in displayedTrunks" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="trunks.checked" checklist-value="trunk.id"></td>\n								<td>{{trunk.name}}</td>\n                <td>{{trunk.host}}</td>\n								<td>{{trunk.context}}</td>\n					      <td>{{trunk.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/trunks/view/{{trunk.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(trunk.name,trunk.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedTrunks.length">\n								<td colspan="6" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="host" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_HOST\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.trunksByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trunk/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getTrunk()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-link"></i>\n					<a href="/trunks/list">{{ \'APPLICATION_TRUNKS\' | translate }}</a>\n					<i data-ng-show="trunk" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="trunk">\n					<a href="#">{{trunk.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/trunk.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{trunk.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.trunks.view.settings\')}">\n							<a data-ng-href="/trunks/view/{{trunk.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trunk/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_TRUNK\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_ADVANCED\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts();">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateTrunk()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="trunk.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n							<div class="row">\n								<div class="col-md-6">\n\n							<!-- START HOST -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.host.$touched || forms.general.$submitted) && forms.general.host.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HOST\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="trunk.host" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_HOST\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.host.$touched || forms.general.$submitted) && forms.general.host.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END HOST -->\n\n							<!-- START SECRET -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.secret.$touched || forms.general.$submitted) && forms.general.secret.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NEW_SECRET\' | translate}}</label>\n								<input type="password" name="secret" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="trunk.secret">\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_SECRET\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.secret.$touched || forms.general.$submitted) && forms.general.secret.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END SECRET -->\n\n							<!-- START CONFIRM SECRET -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rsecret.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONFIRM_SECRET\' | translate}}</label>\n								<input type="password" name="rsecret" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="trunk.rsecret" nx-equal="trunk.secret"/>\n								<span data-ng-show="forms.general.$submitted && (forms.general.rsecret.$invalid || forms.general.rsecret.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONFIRM SECRET -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<!-- START CALLERID -->\n							<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.general.callerid.$touched || forms.general.$submitted) && forms.general.callerid.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CALLERID\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="callerid" placeholder="{{\'APPLICATION_CALLERID\' | translate}}" class="form-control" data-ng-model="trunk.callerid" required/>\n								<span data-ng-show="(forms.general.callerid.$touched || forms.general.$submitted) && forms.general.callerid.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div> -->\n							<!-- END CALLERID -->\n\n							<!-- START TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.type.$touched || forms.general.$submitted) && forms.general.type.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.type" name="type" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'user\',\'peer\',\'friend\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_TYPE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.type.$touched || forms.general.$submitted) && forms.general.type.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TYPE -->\n\n							<!-- START DTMFMODE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.dtmfmode.$touched || forms.general.$submitted) && forms.general.dtmfmode.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DTMFMODE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.dtmfmode" name="dtmfmode" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'rfc2833\', \'info\', \'shortinfo\', \'inband\',\'auto\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_DTMFMODE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.dtmfmode.$touched || forms.general.$submitted) && forms.general.dtmfmode.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END DTMFMODE -->\n\n						</div>\n						<div class="col-md-6">\n\n							<!-- START DEFAULT USER -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.defaultuser.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DEFAULT_USER\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="defaultuser" placeholder="{{\'APPLICATION_DEFAULT_USER\' | translate}}" class="form-control" data-ng-model="trunk.defaultuser" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_DEFAULT_USER\' | translate }}\n								</span>\n								<span data-ng-show="forms.general.$submitted && (forms.general.defaultuser.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END DEFAULT USER -->\n\n							<!-- START NAT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.nat.$touched || forms.general.$submitted) && forms.general.nat.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select multiple data-ng-model="trunk.nat" name="nat" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\', \'no\', \'never\', \'route\', \'force_rport\', \'comedia\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_NAT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.nat.$touched || forms.general.$submitted) && forms.general.nat.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAT -->\n\n							<!-- START QUALIFY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.qualify.$touched || forms.general.$submitted) && forms.general.qualify.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUALIFY\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.qualify" name="qualify" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_QUALIFY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.qualify.$touched || forms.general.$submitted) && forms.general.qualify.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUALIFY -->\n\n							<!-- START ALLOW -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.allow.$touched || forms.general.$submitted) && forms.general.allow.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ALLOW_CODEC\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select multiple data-ng-model="trunk.allow" name="allow" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'g723\',\'gsm\',\'ulaw\',\'alaw\',\'g726\',\'g722\',\'g729\',\'ilbc\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_ALLOW_CODEC\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.allow.$touched || forms.general.$submitted) && forms.general.allow.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ALLOW -->\n\n							<!-- START INSECURE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.insecure.$touched || forms.general.$submitted) && forms.general.insecure.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INSECURE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select multiple data-ng-model="trunk.insecure" name="insecure" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'port\',\'invite\',\'very\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_INSECURE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.insecure.$touched || forms.general.$submitted) && forms.general.insecure.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INSECURE -->\n\n							<!-- START CALLLIMIT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.call-limit.$touched || forms.general.$submitted) && forms.general.call-limit.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CALLLIMIT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="number" min="0" name="call-limit" placeholder="{{\'APPLICATION_CALLLIMIT\' | translate}}" class="form-control" data-ng-model="trunk[\'call-limit\']"/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_CALLLIMIT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.call-limit.$touched || forms.general.$submitted) && forms.general.call-limit.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CALLLIMIT -->\n\n						</div>\n					</div>\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="trunk.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n					<!-- ADVANCED TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<form name="forms.advanced" data-ng-submit="forms.advanced.$valid && updateTrunk()" novalidate>\n							<div class="row">\n								<div class="col-md-6">\n							<!-- START LIMITONPEERS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.limitonpeers.$touched || forms.advanced.$submitted) && forms.advanced.limitonpeers.$invalid}">\n								<label class="control-label">{{\'APPLICATION_LIMITONPEERS\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.limitonpeers" name="limitonpeers" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_LIMITONPEERS\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.limitonpeers.$touched || forms.advanced.$submitted) && forms.advanced.limitonpeers.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END LIMITONPEERS -->\n\n							<!-- START REGISTRY -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_REGISTRY\' | translate}}</label>\n								<input type="text" name="registry" placeholder="{{\'APPLICATION_REGISTRY\' | translate}}" class="form-control" data-ng-model="trunk.registry"/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_REGISTRY\' | translate }}\n								</span>\n							</div>\n							<!-- END REGISTRY -->\n\n							<!-- START DIRECTMEDIA -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.directmedia.$touched || forms.advanced.$submitted) && forms.advanced.directmedia.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DIRECTMEDIA\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.directmedia" name="directmedia" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\', \'no\', \'nonat\', \'update\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_DIRECTMEDIA\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.directmedia.$touched || forms.advanced.$submitted) && forms.advanced.directmedia.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END DIRECTMEDIA -->\n\n							<!-- START CALLCOUNTER -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.callcounter.$touched || forms.advanced.$submitted) && forms.advanced.callcounter.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CALLCOUNTER\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.callcounter" name="callcounter" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_CALLCOUNTER\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.callcounter.$touched || forms.advanced.$submitted) && forms.advanced.callcounter.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CALLCOUNTER -->\n\n							<!-- START FROMDOMAIN -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.advanced.$submitted && forms.advanced.fromdomain.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FROMDOMAIN\' | translate}}</label>\n								<input type="text" name="fromdomain" placeholder="{{\'APPLICATION_FROMDOMAIN\' | translate}}" class="form-control" data-ng-model="trunk.fromdomain" />\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_FROMDOMAIN\' | translate }}\n								</span>\n								<span data-ng-show="forms.advanced.$submitted && (forms.advanced.fromdomain.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FROMDOMAIN -->\n\n							<!-- START FROMUSER -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.advanced.$submitted && forms.advanced.fromuser.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FROMUSER\' | translate}}</label>\n								<input type="text" name="fromuser" placeholder="{{\'APPLICATION_FROMUSER\' | translate}}" class="form-control" data-ng-model="trunk.fromuser" />\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_FROMUSER\' | translate }}\n								</span>\n								<span data-ng-show="forms.advanced.$submitted && (forms.advanced.fromuser.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FROMUSER -->\n\n						</div>\n						<div class="col-md-6">\n\n							<!-- START OUTBOUNDPROXY -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.advanced.$submitted && forms.advanced.outboundproxy.$invalid}">\n								<label class="control-label">{{\'APPLICATION_OUTBOUNDPROXY\' | translate}}</label>\n								<input type="text" name="outboundproxy" placeholder="{{\'APPLICATION_OUTBOUNDPROXY\' | translate}}" class="form-control" data-ng-model="trunk.outboundproxy" />\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_OUTBOUNDPROXY\' | translate }}\n								</span>\n								<span data-ng-show="forms.advanced.$submitted && (forms.advanced.outboundproxy.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END OUTBOUNDPROXY -->\n\n							<!-- START USEREQPHONE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.usereqphone.$touched || forms.advanced.$submitted) && forms.advanced.usereqphone.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USEREQPHONE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.usereqphone" name="usereqphone" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_USEREQPHONE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.usereqphone.$touched || forms.advanced.$submitted) && forms.advanced.usereqphone.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USEREQPHONE -->\n\n							<!-- START TRUSTRPID -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.trustrpid.$touched || forms.advanced.$submitted) && forms.advanced.trustrpid.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TRUSTRPID\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.trustrpid" name="trustrpid" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_TRUSTRPID\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.trustrpid.$touched || forms.advanced.$submitted) && forms.advanced.trustrpid.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TRUSTRPID -->\n\n							<!-- START SENDRPID -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.sendrpid.$touched || forms.advanced.$submitted) && forms.advanced.sendrpid.$invalid}">\n								<label class="control-label">{{\'APPLICATION_SENDRPID\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.sendrpid" name="sendrpid" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_SENDRPID\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.sendrpid.$touched || forms.advanced.$submitted) && forms.advanced.sendrpid.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END SENDRPID -->\n\n							<!-- START ENCRYPTION -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.encryption.$touched || forms.advanced.$submitted) && forms.advanced.encryption.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ENCRYPTION\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.encryption" name="encryption" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_ENCRYPTION\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.encryption.$touched || forms.advanced.$submitted) && forms.advanced.encryption.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ENCRYPTION -->\n\n							<!-- START PORT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.port.$touched || forms.advanced.$submitted) && forms.advanced.port.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PORT\' | translate}}</label>\n								<input type="number" min="0" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="trunk.port"/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_PORT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.port.$touched || forms.advanced.$submitted) && forms.advanced.port.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PORT -->\n\n							<!-- START TRANSPORT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.transport.$touched || forms.advanced.$submitted) && forms.advanced.transport.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TRANSPORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select multiple data-ng-model="trunk.transport" name="transport" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'udp\',\'wss\',\'ws\',\'tcp\',\'tls\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_TRANSPORT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.transport.$touched || forms.advanced.$submitted) && forms.advanced.transport.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TRANSPORT -->\n\n						</div>\n					</div>\n					<!-- START OTHER FIELDS-->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_OTHER_FIELDS\' | translate}}</label>\n						<textarea type="text" name="otherFields" placeholder="{{\'APPLICATION_OTHER_FIELDS\' | translate}}" class="form-control" data-ng-model="trunk.otherFields"></textarea>\n						<span class="help-block">\n							{{ \'DESCRIPTION_TRUNK_OTHER_FIELDS\' | translate }}\n						</span>\n					</div>\n					<!-- END OTHER FIELDS -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
+a.put("app/trunk/wizard/wizard.html",'<div class="col-md-12" data-ng-init="initWizard()">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-link"></i>\n				<a href="/trunks/list">{{ \'APPLICATION_TRUNKS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-link font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_TRUNK\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n			    <form name="forms.general" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="forms.general.$submitted && forms.general.name.$invalid" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n						<!-- START ROLE -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.general.role.$touched || forms.general.$submitted) && forms.general.role.$invalid}">\n							<label class="control-label">{{\'APPLICATION_USAGE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.role" name="role" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.value}}</ui-select-match>\n								<ui-select-choices repeat="type.key as type in types | filter: $select.search">\n									<div ng-bind-html="type.value | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_TRUNK_ROLE\' | translate }}\n							</span>\n							<span data-ng-show="(forms.general.role.$touched || forms.general.$submitted) && forms.general.role.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END ROLE -->\n\n						<!-- START HOST -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.host.$invalid}">\n							<label class="control-label">{{\'APPLICATION_HOST\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.host" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_TRUNK_HOST\' | translate }}\n							</span>\n							<span data-ng-show="forms.general.$submitted && forms.general.host.$invalid" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END HOST -->\n\n						<!-- START PASSWORD -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.password.$invalid}">\n							<label class="control-label">{{\'APPLICATION_SECRET\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.secret" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_TRUNK_SECRET\' | translate }}\n							</span>\n							<span data-ng-show="forms.general.$submitted && forms.general.password.$invalid" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END PASSWORD -->\n\n						<!-- START CONFIRM PASSWORD -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rpassword.$invalid}">\n							<label class="control-label">{{\'APPLICATION_CONFIRM_SECRET\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.secret" required/>\n							<span data-ng-show="forms.general.$submitted && (forms.general.rpassword.$invalid)" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n							</span>\n						</div>\n						<!-- END CONFIRM PASSWORD -->\n\n						<!-- START DEFAULT USER -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.defaultuser.$invalid}">\n							<label class="control-label">{{\'APPLICATION_DEFAULT_USER\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="defaultuser" placeholder="{{\'APPLICATION_DEFAULT\' | translate}} {{\'APPLICATION_USER\' | translate}}" class="form-control" data-ng-model="item.defaultuser" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_TRUNK_DEFAULT_USER\' | translate }}\n							</span>\n							<span data-ng-show="forms.general.$submitted && (forms.general.defaultuser.$invalid)" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n							</span>\n						</div>\n						<!-- END DEFAULT USER -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n\n						<button class="btn green-haze" type="submit" ng-click="next(true)">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_ADVANCED\' | translate}}" canexit="exitValidation(forms.advanced.$valid)">\n					<form name="forms.advanced" novalidate>\n\n						<!-- START REGISTRY -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_REGISTRY\' | translate}}</label>\n							<input type="text" name="registry" placeholder="{{\'APPLICATION_REGISTRY\' | translate}}" class="form-control" data-ng-model="item.registry"/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_TRUNK_REGISTRY\' | translate }}\n							</span>\n						</div>\n						<!-- END REGISTRY -->\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</form>\n				</wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/update/list/checkout/checkout.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text" ng-bind="modal.text"></p>\n  <div ng-if="modal.html" ng-bind-html="modal.html"></div>\n</div>\n<div class="modal-footer">\n  <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" ng-bind="button.text" class="btn"></button>\n</div>\n'),a.put("app/update/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-cloud-download"></i>\n					<a href="/updates/list">{{ \'APPLICATION_UPDATES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-cloud-download font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_UPDATES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-default" href="#" data-ng-click="pull()">\n						<i class="icon-cloud-download"></i> {{ \'APPLICATION_UPDATE\' | translate }}\n					</a>\n				</div>\n			</div>\n			<div class="portlet-body" data-ng-init="initList()">\n				<!-- BEGIN TABLE -->\n					<table st-table="displayedUpdates" st-safe-src="updates" class="table table-striped table-bordered table-hover">\n						<div class="table-responsive">\n						  <thead>\n								<tr>\n									<th colspan="3">\n										<div class="row">\n											<div class="col-md-12">\n												<ui-select class="input-xsmall" ng-model="conf.updatesByPage" theme="bootstrap" ng-disabled="disabled">\n													<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n													<ui-select-choices repeat="updateByPage in updatesByPage | filter: $select.search">\n														<div ng-bind-html="updateByPage.name | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n									</th>\n								</tr>\n								<tr>\n									<th st-sort="message">{{ \'APPLICATION_MESSAGE\' | translate }}</th>\n									<th st-sort="version">{{ \'APPLICATION_VERSION\' | translate }}</th>\n									<th>{{ \'APPLICATION_DATE\' | translate }}</th>\n									<!-- <th class="small-cells"></th> -->\n							  </tr>\n						  </thead>\n							<tbody>\n						    <tr data-ng-repeat="update in displayedUpdates">\n									<td>\n										{{update.message}}\n									</td>\n									<td>\n										{{update.version}}\n									</td>\n									<td>\n										{{update.date}}\n									</td>\n									<!-- <td>\n						        <a class="btn default btn-xs green-stripe" href="#" data-ng-click="checkout(update.hash)">\n											<i class="icon-cloud-download"></i> {{ \'APPLICATION_CHECKOUT\' | translate }}\n						        </a>\n						      </td> -->\n						    </tr>\n								<tr data-ng-hide="displayedUpdates.length">\n									<td colspan="9" style="text-align:center;">\n										<i>{{\'MESSAGE_NO_AVAILABLE_UPDATES\' | translate}}</i>\n									</td>\n								</tr>\n						  </tbody>\n						  <tfoot>\n								<tr>\n									<td colspan="1">\n										<div class="input-icon right">\n											<i class="fa fa-search"></i>\n											<input st-search="message" placeholder="{{ \'APPLICATION_MESSAGE\' | translate | lowercase}}" class="form-control" type="search"/>\n										</div>\n									<td colspan="9"></td>\n							  </tr>\n						    <tr>\n						      <td colspan="10" class="text-center">\n										<div class="pagination" st-pagination st-items-by-page="conf.updatesByPage.value" st-displayed-pages="7"></div>\n						      </td>\n						    </tr>\n						  </tfoot>\n						</div>\n					</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/update/view/view.account.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li data-ng-class="{\'active\': Auth.isAdmin()}" data-ng-show="Auth.isAdmin()">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_PERSONAL_INFO\' | translate}}</a>\n					</li>\n					<li data-ng-show="Auth.isAdmin()">\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_CHANGE_AVATAR\' | translate}}</a>\n					</li>\n					<li data-ng-show="Auth.isAdmin() || update.id === Auth.getCurrentUser().id" data-ng-class="{\'active\': !Auth.isAdmin() && update.id === Auth.getCurrentUser().id}">\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_CHANGE_PASSWORD\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- PERSONAL INFO TAB -->\n					<div class="tab-pane" data-ng-class="{\'active\': Auth.isAdmin()}" data-ng-show="Auth.isAdmin()" id="tab_1_1">\n						<form name="forms.info" data-ng-submit="updateItem()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="update.fullname" required/>\n								<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="update.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START EMAIL -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="update.email" required/>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n								</span>\n							</div>\n							<!-- END EMAIL -->\n\n							<!-- START INTERNAL -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="update.internal" required disabled/>\n								<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERNAL -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END PERSONAL INFO TAB -->\n					<!-- CHANGE AVATAR TAB -->\n					<div class="tab-pane" data-ng-show="Auth.isAdmin()" id="tab_1_2">\n						<form action="#" role="form">\n							<div class="form-group">\n								<div class="fileinput fileinput-new" data-provides="fileinput">\n									<div class="fileinput-new thumbnail" style="width: 200px; height: 150px;">\n										<img src="http://www.placehold.it/200x150/EFEFEF/AAAAAA&amp;text=no+image" alt=""/>\n									</div>\n									<div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 150px;">\n									</div>\n									<div>\n										<span class="btn default btn-file" data-ng-show="!uploader.queue[0]">\n											<span> {{ \'APPLICATION_SELECT_IMAGE\' | translate }} </span>\n											<input type="file" nv-file-select="" uploader="uploader" /><br/>\n										</span>\n										<button type="button" class="btn default" data-ng-show="uploader.queue[0]" data-dismiss="fileinput" ng-click="uploader.queue[0].remove()">\n											{{ \'APPLICATION_REMOVE\' | translate }}\n										</button>\n										<button type="button" class="btn green-haze" data-ng-show="uploader.queue[0]" data-ng-click="uploader.queue[0].upload()" ng-disabled="uploader.queue[0].isReady || uploader.queue[0].isUploading || uploader.queue[0].isSuccess">\n											{{ \'APPLICATION_CONFIRM\' | translate }}\n										</button>\n									</div>\n									<p>\n										</br> {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} <b>jpg, png, jpeg</b>.\n									</p>\n								</div>\n							</div>\n						</form>\n						<div class="row">\n							<div class="col-md-2">\n								<table class="table" border="0">\n									<tbody>\n									<tr data-ng-repeat="item in uploader.queue">\n											<td style="border-top-style:none">\n												<strong>\n													{{ item.file.name }}\n												</strong>\n											</td>\n											<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n												{{ item.file.size/1024/1024|number:2 }} MB\n											</td>\n											<td nowrap style="border-top-style:none">\n												<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n														<span class="glyphicon glyphicon-trash"></span> Remove\n												</button>\n											</td>\n										</tr>\n									</tbody>\n								</table>\n							</div>\n						</div>\n					</div>\n					<!-- END CHANGE AVATAR TAB -->\n					<!-- CHANGE PASSWORD TAB -->\n					<div class="tab-pane" data-ng-show="Auth.isAdmin() || update.id === Auth.getCurrentUser().id" data-ng-class="{\'active\': !Auth.isAdmin() && update.id === Auth.getCurrentUser().id}" id="tab_1_3">\n						<form name="forms.changePwd" data-ng-submit="forms.changePwd.$valid && updatePassword()" novalidate>\n							<!-- START CURRENT PWD -->\n							<div class="form-group" data-ng-if="!Auth.isAdmin()" data-ng-class="{\'has-error\': (forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="current_pwd" placeholder="{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}" class="form-control" data-ng-model="update.currentPwd" required/>\n								<span data-ng-show="(forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CURRENT PWD -->\n							<!-- START NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="new_pwd" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="update.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NEW PWD -->\n							<!-- START RE-NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.re_new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.re_new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="re_new_pwd" placeholder="{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="update.reNewPwd" nx-equal="update.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RE-NEW PWD -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END CHANGE PASSWORD TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/update/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-people"></i>\n					<a href="/updates/list">{{ \'APPLICATION_UPDATES\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{update.fullname}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-userpic">\n					<img ng-src="api/users/avatar/{{update.userpic ? update.userpic : \'unknown_avatar\'}}" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- START SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{update.fullname}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{update.role}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.updates.view.account\')}">\n							<a data-ng-href="/updates/view/{{update.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/update/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-people"></i>\n				<a href="/updates/list">{{ \'APPLICATION_UPDATES\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/updates/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" ng-init="getFirstFreeInternal();">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-user font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_UPDATE\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_ACCOUNT\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n			    <form name="forms.info" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n							<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n			      <!-- START USERNAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.name" required ng-remote-validate="/api/updates/validate/name"/>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END USERNAME -->\n\n			      <!-- START EMAIL -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="item.email" required ng-remote-validate="/api/updates/validate/email"/>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_EMAIL\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END EMAIL -->\n\n			      <!-- START PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n			        <span data-ng-show="(forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END PASSWORD -->\n\n			      <!-- START RE PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.nxEqual" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END RE PASSWORD -->\n\n						<!-- START INTERNAL -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n							<label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<div class="input-group">\n							<input type="number" min="1" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="item.internal" data-ng-disabled="!item.internalEnabled" data-ng-required="item.internalEnabled" ng-remote-validate="/api/updates/validate/internal"/>\n							<span class="input-group-addon">\n								<input type="checkbox" data-ng-model="item.internalEnabled">\n							</span>\n							</div>\n							<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n							<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.ngRemoteValidate" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_INTERNAL\' | translate}}.\n							</span>\n						</div>\n						<!-- END INTERNAL -->\n\n			      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_VOICE\' | translate}}" canexit="exitValidation(forms.voice.$valid)">\n					<form name="forms.voice" novalidate>\n\n						<!-- START ACCOUNTCODE -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.accountcode.$touched || forms.voice.$submitted) && forms.voice.accountcode.$invalid}">\n							<label class="control-label">{{\'APPLICATION_ACCOUNTCODE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="number" name="accountcode" placeholder="{{\'APPLICATION_ACCOUNTCODE\' | translate}}" class="form-control" data-ng-model="item.accountcode" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.accountcode.$touched || forms.voice.$submitted) && forms.voice.accountcode.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END ACCOUNTCODE -->\n\n						<!-- START TRANSPORT -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_TRANSPORT\' | translate}}</label>\n							<ui-select multiple name="transport" ng-model="item.transport" theme="bootstrap" ng-disabled="disabled">\n						    <ui-select-match placeholder="Select transport...">{{$item}}</ui-select-match>\n						    <ui-select-choices repeat="transport in [\'udp\', \'tcp\', \'ws\', \'wss\'] | filter: $select.search">\n						    	{{transport}}\n						    </ui-select-choices>\n						  </ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n							</span>\n						</div>\n						<!-- END TRANSPORT -->\n\n						<!-- START HOST -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.host.$touched || forms.voice.$submitted) && forms.voice.host.$invalid}">\n							<label class="control-label">{{\'APPLICATION_HOST\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.host" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.host.$touched || forms.voice.$submitted) && forms.voice.host.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END HOST -->\n\n						<!-- START NAT -->\n						<!-- <div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_NAT\' | translate}}</label>\n							<ui-select multiple ng-model="item.nat" name="nat" theme="bootstrap" ng-disabled="disabled">\n								<ui-select-match placeholder="{{ \'APPLICATION_SEARCH_FILTER\' | translate }}">{{$item}}</ui-select-match>\n								<ui-select-choices repeat="nat in [\'yes\', \'no\', \'never\', \'route\', \'force_rport\', \'comedia\'] | filter: $select.search">\n									{{nat}}\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_NAT\' | translate }}\n							</span>\n						</div> -->\n\n						<!-- END NAT -->\n\n						<!-- START TYPE -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.type.$touched || forms.voice.$submitted) && forms.voice.type.$invalid}">\n							<label class="control-label">{{\'APPLICATION_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.type" name="type" theme="bootstrap" required>\n								<ui-select-match placeholder="{{ \'APPLICATION_SEARCH_FILTER\' | translate }}">{{$select.selected}}</ui-select-match>\n								<ui-select-choices repeat="type in [\'friend\', \'user\', \'peer\'] | filter: $select.search">\n									<div ng-bind-html="type | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_TYPE\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.type.$touched || forms.voice.$submitted) && forms.voice.type.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END TYPE -->\n\n						<!-- START CODEC -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_ALLOWED_CODECS\' | translate}}</label>\n							<ui-select multiple ng-model="item.allow" name="allow" theme="bootstrap" ng-disabled="disabled">\n						    <ui-select-match placeholder="Select codec...">{{$item}}</ui-select-match>\n						    <ui-select-choices repeat="allow in [\'g729\', \'ilbc\', \'gsm\', \'ulaw\', \'alaw\'] | filter: $select.search">\n						    	{{allow}}\n						    </ui-select-choices>\n						  </ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n							</span>\n						</div>\n						<!-- END CODEC -->\n\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						<input class="btn default" type="button" value="{{\'APPLICATION_BACK\' | translate}}" wz-previous/>\n					</form>\n				</wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),
+a.put("app/user/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-eye"></i>\n					<a href="/users/list">{{ \'APPLICATION_USERS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-eye font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_USERS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="users.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_USER\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/users/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getUsers([\'name\', \'fullname\', \'email\'])" csv-header="[\'Username\', \'Fullname\', \'Email\']" field-separator=";" filename="users.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table id="table" st-table="displayedUsers" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.usersByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="userByPage in usersByPage | filter: $select.search">\n													<div ng-bind-html="userByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(user, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="fullname">{{ \'APPLICATION_FULLNAME\' | translate }}</th>\n						    <th st-sort="name">{{ \'APPLICATION_USERNAME\' | translate }}</th>\n						    <th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n								<th st-sort="role">{{ \'APPLICATION_ROLE\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="user in displayedUsers" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="users.checked" checklist-value="user.id"></td>\n								<td>{{user.fullname}}</td>\n					      <td>{{user.name}}</td>\n					      <td><a ng-href="mailto:{{user.email}}">{{user.email}}</a></td>\n								<td>{{user.role}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/users/view/{{user.id}}/account">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(user.fullname, user.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedUsers.length">\n								<td colspan="6" style="text-align:center;">\n									<i>No users available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="fullname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="role" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_ROLE\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.usersByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/user/view/view.account.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_PERSONAL_INFO\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_CHANGE_AVATAR\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-ng-show="Auth.isAdmin() || user.id === getCurrentUser().id" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_CHANGE_PASSWORD\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- PERSONAL INFO TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.info" data-ng-submit="updateItem()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="user.fullname" required/>\n								<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="user.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START EMAIL -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="user.email" required/>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n								</span>\n							</div>\n							<!-- END EMAIL -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END PERSONAL INFO TAB -->\n					<!-- CHANGE AVATAR TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<form action="#" role="form">\n							<div class="form-group">\n								<div class="fileinput fileinput-new" data-provides="fileinput">\n									<div class="fileinput-new thumbnail" style="width: 200px; height: 150px;">\n										<img src="http://www.placehold.it/200x150/EFEFEF/AAAAAA&amp;text=no+image" alt=""/>\n									</div>\n									<div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 150px;">\n									</div>\n									<div>\n										<span class="btn default btn-file" data-ng-show="!uploader.queue[0]">\n											<span> {{ \'APPLICATION_SELECT_IMAGE\' | translate }} </span>\n											<input type="file" nv-file-select="" uploader="uploader" /><br/>\n										</span>\n										<button type="button" class="btn default" data-ng-show="uploader.queue[0]" data-dismiss="fileinput" ng-click="uploader.queue[0].remove()">\n											<span> {{ \'APPLICATION_REMOVE\' | translate }} </span>\n										</button>\n										<button type="button" class="btn green-haze" data-ng-show="uploader.queue[0]" data-ng-click="uploader.queue[0].upload()" ng-disabled="uploader.queue[0].isReady || uploader.queue[0].isUploading || uploader.queue[0].isSuccess">\n											<span> {{ \'APPLICATION_CONFIRM\' | translate }} </span>\n										</button>\n									</div>\n									<p>\n										</br> {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} <b>jpg, png, jpeg</b>.\n									</p>\n								</div>\n							</div>\n						</form>\n						<div class="row">\n							<div class="col-md-2">\n								<table class="table" border="0">\n									<tbody>\n									<tr data-ng-repeat="item in uploader.queue">\n											<td style="border-top-style:none">\n												<strong>\n													{{ item.file.name }}\n												</strong>\n											</td>\n											<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n												{{ item.file.size/1024/1024|number:2 }} MB\n											</td>\n											<td nowrap style="border-top-style:none">\n												<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n														<span class="glyphicon glyphicon-trash"></span> Remove\n												</button>\n											</td>\n										</tr>\n									</tbody>\n								</table>\n							</div>\n						</div>\n					</div>\n					<!-- END CHANGE AVATAR TAB -->\n					<!-- CHANGE PASSWORD TAB -->\n					<div class="tab-pane" id="tab_1_3" data-ng-show="Auth.isAdmin() || user.id === getCurrentUser().id">\n						<form name="forms.changePwd" data-ng-submit="forms.changePwd.$valid && updatePassword()" novalidate>\n							<!-- START CURRENT PWD -->\n							<div class="form-group" data-ng-if="!Auth.isAdmin()" data-ng-class="{\'has-error\': (forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="current_pwd" placeholder="{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}" class="form-control" data-ng-model="user.currentPwd" required/>\n								<span data-ng-show="(forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CURRENT PWD -->\n							<!-- START NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="new_pwd" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="user.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NEW PWD -->\n							<!-- START RE-NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.re_new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.re_new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="re_new_pwd" placeholder="{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="user.reNewPwd" nx-equal="user.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RE-NEW PWD -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n						<!-- <form action="#">\n							<div class="form-group">\n								<label class="control-label">Current Password</label>\n								<input type="password" class="form-control"/>\n							</div>\n							<div class="form-group">\n								<label class="control-label">New Password</label>\n								<input type="password" class="form-control"/>\n							</div>\n							<div class="form-group">\n								<label class="control-label">Re-type New Password</label>\n								<input type="password" class="form-control"/>\n							</div>\n							<div class="margin-top-10">\n								<a href="#" class="btn green-haze">Change Password </a>\n								<a href="#" class="btn default">Cancel </a>\n							</div>\n						</form> -->\n					</div>\n					<!-- END CHANGE PASSWORD TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/user/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-eye"></i>\n					<a href="/users/list">{{ \'APPLICATION_USERS\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{user.fullname}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-userpic">\n					<img ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{user.fullname}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{user.role}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.users.view.account\')}">\n							<a data-ng-href="/users/view/{{user.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/user/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-eye"></i>\n				<a href="/users/list">{{ \'APPLICATION_USERS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/users/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-user font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_USER\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_ACCOUNT\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n			    <form name="forms.info" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n							<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n			      <!-- START USERNAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.name" required ng-remote-validate="/api/users/validate/name"/>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END USERNAME -->\n\n			      <!-- START EMAIL -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="item.email" required ng-remote-validate="/api/users/validate/email"/>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_EMAIL\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END EMAIL -->\n\n			      <!-- START PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n			        <span data-ng-show="(forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END PASSWORD -->\n\n			      <!-- START RE PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.nxEqual" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END RE PASSWORD -->\n\n			      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/variable/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_VARIABLE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.variable" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.variable.name.$touched || forms.variable.$submitted) && forms.variable.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.variable.name.$touched || forms.variable.$submitted) && forms.variable.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.variable.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/variable/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-eye"></i>\n					<a href="/variables/list">{{ \'APPLICATION_VARIABLES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_VARIABLES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Variables.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<button class="btn green-jungle " ng-click="create()">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_VARIABLE\' | translate }}\n						</button>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getVariables([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="variables.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedVariables" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.variablesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="variableByPage in variablesByPage | filter: $select.search">\n													<div ng-bind-html="variableByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(variable, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="variable in displayedVariables" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="variable.defaultEntry" type="checkbox" checklist-model="Variables.checked" checklist-value="variable.id"></td>\n								<td>{{variable.name}}</td>\n					      <td>{{variable.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/variables/view/{{variable.id}}/settings" data-ng-class="{\'disabled\': variable.defaultEntry}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(variable.name,variable.id)" data-ng-class="{\'disabled\': variable.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedVariables.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_VARIABLES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.variablesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/variable/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getVariable()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-eye"></i>\n					<a href="/variables/list">{{ \'APPLICATION_VARIABLES\' | translate }}</a>\n					<i data-ng-show="variable" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="variable">\n					<a href="#">{{variable.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/variable.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{variable.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.variables.view.settings\')}">\n							<a data-ng-href="/variables/view/{{variable.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/variable/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_VARIABLE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateVariable()" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="variable.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="variable.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/context/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/voice/contexts/list">{{ \'APPLICATION_CONTEXTS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CONTEXTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="voiceContexts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONTEXT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/contexts/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getVoiceContexts([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="voice_contexts.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedContexts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.contextsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="contextByPage in contextsByPage | filter: $select.search">\n													<div ng-bind-html="contextByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(context, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="context in displayedVoiceContexts" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="context.defaultEntry" type="checkbox" checklist-model="voiceContexts.checked" checklist-value="context.id"></td>\n								<td>{{context.name}}</td>\n					      <td>{{context.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/contexts/view/{{context.id}}/settings" data-ng-class="{\'disabled\': context.defaultEntry}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(context.name,context.id)" data-ng-class="{\'disabled\': context.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedVoiceContexts.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_CONTEXTS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.contextsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/context/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getContext()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/voice/contexts/list">{{ \'APPLICATION_CONTEXTS\' | translate }}</a>\n					<i data-ng-show="context" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="context">\n					<a href="#">{{context.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/context.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{context.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.contexts.view.settings\')}">\n							<a data-ng-href="/voice/contexts/view/{{context.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/context/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CONTEXT\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceContext()" novalidate>\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="context.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/context/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-docs"></i>\n				<a href="/voice/contexts/list">{{ \'APPLICATION_CONTEXTS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/voice/contexts/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-docs font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_CONTEXT\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.context.$valid)">\n			    <form name="forms.context" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.context.name.$touched || forms.context.$submitted) && forms.context.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.context.name.$touched || forms.context.$submitted) && forms.context.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n			      <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/moh/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-music-tone"></i>\n					<a href="/voice/mohs/list">{{ \'APPLICATION_MOHS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-music-tone font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_MOHS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="mohs.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_MOH_CLASS\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/mohs/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getMohs([\'name\', \'directory\', \'sort\', \'description\'])" csv-header="[\'Name\', \'Directory\', \'Sort\', \'Description\']" field-separator=";" filename="musiconholds_classes.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedMohs" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.mohsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="mohByPage in mohsByPage | filter: $select.search">\n													<div ng-bind-html="mohByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(moh, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                <th st-sort="directory">{{ \'APPLICATION_PATH\' | translate }}</th>\n                <th st-sort="sort">{{ \'APPLICATION_SORT\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="moh in displayedMohs" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mohs.checked" checklist-value="moh.id" data-ng-hide="moh.defaultEntry"></td>\n								<td>{{moh.name}}</td>\n                <td>{{moh.directory}}</td>\n								<td>{{moh.sort | capitalize}}</td>\n					      <td>{{moh.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-class="{\'disabled\': moh.defaultEntry}" data-ng-href="/voice/mohs/view/{{moh.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-class="{\'disabled\': moh.defaultEntry}" data-ng-click="deleteItem(moh.name,moh.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedMohs.length">\n								<td colspan="6" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_MOHS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="directory" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_PATH\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="sort" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_SORT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.mohsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/moh/view/view.addFiles.html",'\n<div class="row" data-ng-init="getSounds()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_MOH\' | translate }} {{ \'APPLICATION_ADD_FILES\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="note note-warning" data-ng-hide="soundList.length">\n					<h4 class="block">Warning!</h4>\n					<p>\n						 {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n					</p>\n				</div>\n            <form name="forms.general" data-ng-submit="(item.sounds.length > 0) && addMohs()" data-ng-show="soundList.length" novalidate>\n\n              <!-- START SOUNDS -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sounds.$touched || forms.general.$submitted) && item.sounds.length == 0}">\n                <label class="control-label">{{\'APPLICATION_SOUNDS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <ui-select multiple data-ng-model="item.sounds" theme="bootstrap" name="sounds" required>\n                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item.display_name}}</ui-select-match>\n                  <ui-select-choices repeat="sound.id as sound in soundList | filter: $select.search">\n                    {{sound.display_name}}\n                  </ui-select-choices>\n                </ui-select>\n                <span data-ng-show="(forms.general.sounds.$touched || forms.general.$submitted) && item.sounds.length == 0" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END OPTIONS -->\n\n							<input type="submit" class="btn green-haze" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</form>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/moh/view/view.audios.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getAudioFiles()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AUDIOS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="audioFiles">\n						<a class="btn green-jungle " href="/voice/mohs/view/{{moh.id}}/add" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_ADD_FILES\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="note note-warning" data-ng-hide="audioFiles">\n					<h4 class="block">Warning!</h4>\n					<p>\n						 {{ \'MESSAGE_FOLDER_DOES_NOT_EXIST\' | translate }}\n					</p>\n				</div>\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover" data-ng-show="audioFiles">\n					  <thead>\n						  <tr>\n						    <th>{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th width="30%">{{ \'APPLICATION_PREVIEW\' | translate }}</th>\n								<th width="10%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody data-ng-model="audioFiles">\n					    <tr data-ng-repeat="audiofile in audioFiles">\n								<td>{{audiofile}}</td>\n								<td>\n									<audio controls ng-src="{{getSecureSrc(audioSources[audiofile])}}" preload="none">\n				            Your browser does not support the audio tag.\n				          </audio></td>\n					      <td>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(audiofile,audiofile)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="audioFiles.length">\n								<td colspan="3" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_AUDIOFILES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n</div>\n'),a.put("app/voice/moh/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getMoh()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-music-tone"></i>\n					<a href="/voice/mohs/list">{{ \'APPLICATION_MOH_CLASS\' | translate }}</a>\n					<i data-ng-show="moh" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="moh">\n					<a href="#">{{moh.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/moh.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{moh.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.mohs.view.settings\')}">\n							<a data-ng-href="/voice/mohs/view/{{moh.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.voice.mohs.view.audios\') || $state.is(\'main.voice.mohs.view.add\')}">\n							<a data-ng-href="/voice/mohs/view/{{moh.id}}/audios">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_AUDIOS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/moh/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_MOH_CLASS\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts();">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceMoh()" novalidate>\n\n	            <!-- START PATH -->\n	            <div class="form-group" >\n	              <label class="control-label">{{\'APPLICATION_PATH\' | translate}}</label>\n	              <input type="text" name="path" class="form-control" data-ng-model="moh.directory" disabled/>\n	            </div>\n	            <!-- END PATH -->\n\n	            <!-- START SORT -->\n	            <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$invalid}">\n	              <label class="control-label">{{\'APPLICATION_SORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n	              <ui-select data-ng-model="moh.sort" theme="bootstrap" name="sort" required>\n	                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n	                <ui-select-choices repeat="sort.value as sort in sortOptions | filter: $select.search">\n	                  {{$translate.instant(sort.name)}}\n	                </ui-select-choices>\n	              </ui-select>\n	              <span data-ng-show="(forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$error.required" class="help-block help-block-error">\n	                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n	              </span>\n	            </div>\n	            <!-- END SORT -->\n\n	            <!-- START DESCRIPTION -->\n				      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.description.$invalid}">\n				        <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n				        <textarea type="text" name="description" class="form-control" data-ng-model="moh.description"/></textarea>\n								<span data-ng-show="forms.general.$submitted && forms.general.description.$invalid" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n				        </span>\n				      </div>\n				      <!-- END DESCRIPTION -->\n\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
+a.put("app/voice/moh/wizard/wizard.html",'<div class="col-md-12" data-ng-init="initWizard();getContexts();">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-music-tone"></i>\n				<a href="/voice/mohs/list">{{ \'APPLICATION_MOHS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-music-tone font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_MOH_CLASS\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n			    <form name="forms.general" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="forms.general.$submitted && forms.general.name.$invalid" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n            <!-- START SORT -->\n            <!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$invalid}">\n              <label class="control-label">{{\'APPLICATION_SORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <ui-select data-ng-model="item.sort" theme="bootstrap" name="sort" required>\n                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                <ui-select-choices repeat="sort.value as sort in sortOptions | filter: $select.search">\n                  {{$translate.instant(sort.name)}}\n                </ui-select-choices>\n              </ui-select>\n              <span data-ng-show="(forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div> -->\n            <!-- END SORT -->\n\n            <!-- START DESCRIPTION -->\n			      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.description.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n			        <textarea type="text" name="description" class="form-control" data-ng-model="item.description"/></textarea>\n							<span data-ng-show="forms.general.$submitted && forms.general.description.$invalid" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END DESCRIPTION -->\n\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/queue/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-layers"></i>\n					<a href="/voice/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-layers font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="queues.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/queues/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getQueues([\'name\', \'description\', \'strategy\', \'context\'])" csv-header="[\'Name\', \'Description\', \'Strategy\', \'Context\']" field-separator=";" filename="queues.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedQueues" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.voiceQueuesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="voiceQueueByPage in voiceQueuesByPage | filter: $select.search">\n													<div ng-bind-html="voiceQueueByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(queue, checked)" checklist-model checklist-value="name"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n						    <th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate }}</th>\n								<th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="queue in displayedQueues" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="queues.checked" checklist-value="queue.name"></td>\n								<td>{{queue.name}}</td>\n					      <td>{{queue.description}}</td>\n					      <td>{{queue.strategy}}</td>\n								<td>{{queue.context}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/queues/view/{{queue.name}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(queue.name,queue.name)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedQueues.length">\n								<td colspan="6" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div class="pagination" st-pagination st-items-by-page="conf.voiceQueuesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="note note-warning" data-ng-hide="teams.length">\n				<h4 class="block">Warning!</h4>\n				<p>\n					 {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n				</p>\n			</div>\n			<div class="portlet-body">\n				<!-- BEGIN FORM-->\n				<form action="index.html" class="form-horizontal form-row-seperated">\n					<div class="form-body text-center">\n						<div class="form-group last">\n							<div class="col-md-9" id="multi-select-team">\n							</div>\n						</div>\n					</div>\n				</form>\n				<!-- END FORM-->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-layers"></i>\n					<a href="/voice/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					<i data-ng-show="queue" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="queue">\n					<a href="#">{{queue.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{queue.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.queues.view.settings\')}">\n							<a data-ng-href="/voice/queues/view/{{queue.name}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.voice.queues.view.agents\')}">\n							<a data-ng-href="/voice/queues/view/{{queue.name}}/agents">\n							<i class="icon-people"></i>\n							{{ \'APPLICATION_AGENTS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/queue/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_QUEUE_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_PERIODIC_ANNOUNCE\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_ADVANCED\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts();getMohs();getSounds();">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceQueue()" novalidate>\n							<div class="row">\n								<div class="col-md-6">\n							<!-- START STRATEGY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n								<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n									<ui-select-choices repeat="strategy in [\'ringall\', \'leastrecent\', \'fewestcalls\', \'random\', \'rrmemory\', \'linear\', \'wrandom\', \'rrordered\'] | filter: $select.search">\n										<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_STRATEGY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n				      <!-- END STRATEGY -->\n\n							<!-- START MOH -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.musiconhold.$touched || forms.general.$submitted) && forms.general.musiconhold.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MOH\' | translate}}</label>\n								<ui-select data-ng-model="queue.musiconhold" name="musiconhold" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="musiconhold.name as musiconhold in voiceMohs | filter: $select.search">\n										<div ng-bind-html="musiconhold.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_VOICE_MOH\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.musiconhold.$touched || forms.general.$submitted) && forms.general.musiconhold.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MOH -->\n\n							<!-- START TIMEOUT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="number" min="0" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="queue.timeout" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_TIMEOUT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TIMEOUT -->\n\n							<!-- START MAXLEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.maxlen.$touched || forms.general.$submitted) && forms.general.maxlen.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MAXLEN\' | translate}}</label>\n								<input type="number" min="0" name="maxlen" placeholder="{{\'APPLICATION_MAXLEN\' | translate}}" class="form-control" data-ng-model="queue.maxlen" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MAXLEN\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.maxlen.$touched || forms.general.$submitted) && forms.general.maxlen.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MAXLEN -->\n\n							<!-- START RETRY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.retry.$touched || forms.general.$submitted) && forms.general.retry.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RETRY\' | translate}}</label>\n								<input type="number" min="0" name="retry" placeholder="{{\'APPLICATION_RETRY\' | translate}}" class="form-control" data-ng-model="queue.retry" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_RETRY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.retry.$touched || forms.general.$submitted) && forms.general.retry.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RETRY -->\n\n						</div>\n						<div class="col-md-6">\n							<!-- START WRAPUPTIME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.wrapuptime.$touched || forms.general.$submitted) && forms.general.wrapuptime.$invalid}">\n								<label class="control-label">{{\'APPLICATION_WRAPUPTIME\' | translate}}</label>\n								<input type="number" min="0" name="wrapuptime" placeholder="{{\'APPLICATION_WRAPUPTIME\' | translate}}" class="form-control" data-ng-model="queue.wrapuptime" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_WRAPUPTIME\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.wrapuptime.$touched || forms.general.$submitted) && forms.general.wrapuptime.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END WRAPUPTIME -->\n\n							<!-- START WEIGHT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.weight.$touched || forms.general.$submitted) && forms.general.weight.$invalid}">\n								<label class="control-label">{{\'APPLICATION_WEIGHT\' | translate}}</label>\n								<input type="number" min="0" name="weight" placeholder="{{\'APPLICATION_WEIGHT\' | translate}}" class="form-control" data-ng-model="queue.weight" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_WEIGHT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.weight.$touched || forms.general.$submitted) && forms.general.weight.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END WEIGHT -->\n\n							<!-- START JOINEMPTY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.joinempty.$touched || forms.general.$submitted) && forms.general.joinempty.$invalid}">\n								<label class="control-label">{{\'APPLICATION_JOINEMPTY\' | translate}}</label>\n								<ui-select multiple data-ng-model="queue.joinempty" name="joinempty" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\',\'strict\',\'loose\',\'paused\',\'penalty\',\'inuse\',\'ringing\',\'unavailable\',\'invalid\',\'unknown\',\'wrapup\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_JOINEMPTY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.joinempty.$touched || forms.general.$submitted) && forms.general.joinempty.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END JOINEMPTY -->\n\n							<!-- START LEAVEWHENEMPTY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.leavewhenempty.$touched || forms.general.$submitted) && forms.general.leavewhenempty.$invalid}">\n								<label class="control-label">{{\'APPLICATION_LEAVEWHENEMPTY\' | translate}}</label>\n								<ui-select multiple data-ng-model="queue.leavewhenempty" name="leavewhenempty" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\',\'strict\',\'loose\',\'paused\',\'penalty\',\'inuse\',\'ringing\',\'unavailable\',\'invalid\',\'unknown\',\'wrapup\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_LEAVEWHENEMPTY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.leavewhenempty.$touched || forms.general.$submitted) && forms.general.leavewhenempty.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END LEAVEWHENEMPTY -->\n\n							<!-- START ANNOUNCE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.announce.$touched || forms.general.$submitted) && forms.general.announce.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANNOUNCE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.announce" name="announce" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in sounds | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_ANNOUNCE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.announce.$touched || forms.general.$submitted) && forms.general.announce.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ANNOUNCE -->\n						</div>\n					</div>\n					<!-- START DESCRIPTION -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n						<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"></textarea>\n					</div>\n					<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n\n					<div class="tab-pane" id="tab_1_2">\n						<form name="forms.announce" data-ng-submit="forms.announce.$valid && updateVoiceQueue()" novalidate>\n							<div class="row">\n								<div class="col-md-12">\n							<!-- START PERIODIC_ANNOUNCE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.periodic_announce.$touched || forms.announce.$submitted) && forms.announce.periodic_announce.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PERIODIC_ANNOUNCE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select multiple data-ng-model="queue.periodic_announce" name="periodic_announce" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in periodicAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_PERIODIC_ANNOUNCE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.periodic_announce.$touched || forms.announce.$submitted) && forms.announce.periodic_announce.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PERIODIC_ANNOUNCE -->\n						</div>\n					</div>\n							<div class="row">\n								<div class="col-md-6">\n							<p><h3>{{\'APPLICATION_SETTINGS\' | translate}}</h3></p>\n							<!-- START ANNOUNCE_FREQUENCY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_frequency.$touched || forms.announce.$submitted) && forms.announce.announce_frequency.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANNOUNCE_FREQUENCY\' | translate}}</label>\n								<input type="number" min="0" name="announce_frequency" placeholder="{{\'APPLICATION_ANNOUNCE_FREQUENCY\' | translate}}" class="form-control" data-ng-model="queue.announce_frequency" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_ANNOUNCE_FREQUENCY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.announce_frequency.$touched || forms.announce.$submitted) && forms.announce.announce_frequency.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ANNOUNCE_FREQUENCY -->\n\n							<!-- START MIN_ANNOUNCE_FREQUENCY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.min_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.min_announce_frequency.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MIN_ANNOUNCE_FREQUENCY\' | translate}}</label>\n								<input type="number" min="0" name="min_announce_frequency" placeholder="{{\'APPLICATION_MIN_ANNOUNCE_FREQUENCY\' | translate}}" class="form-control" data-ng-model="queue.min_announce_frequency" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MIN_ANNOUNCE_FREQUENCY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.min_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.min_announce_frequency.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MIN_ANNOUNCE_FREQUENCY -->\n\n							<!-- START PERIODIC_ANNOUNCE_FREQUENCY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.periodic_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.periodic_announce_frequency.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PERIODIC_ANNOUNCE_FREQUENCY\' | translate}}</label>\n								<input type="number" min="0" name="periodic_announce_frequency" placeholder="{{\'APPLICATION_PERIODIC_ANNOUNCE_FREQUENCY\' | translate}}" class="form-control" data-ng-model="queue.periodic_announce_frequency"/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_PERIODIC_ANNOUNCE_FREQUENCY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.periodic_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.periodic_announce_frequency.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PERIODIC_ANNOUNCE_FREQUENCY -->\n\n							<!-- START RANDOM_PERIODIC_ANNOUNCE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.random_periodic_announce.$touched || forms.announce.$submitted) && forms.announce.random_periodic_announce.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RANDOM_PERIODIC_ANNOUNCE\' | translate}}</label>\n								<ui-select data-ng-model="queue.random_periodic_announce" name="random_periodic_announce" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_RANDOM_PERIODIC_ANNOUNCE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.random_periodic_announce.$touched || forms.announce.$submitted) && forms.announce.random_periodic_announce.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RANDOM_PERIODIC_ANNOUNCE -->\n\n							<!-- START ANNOUNCE_HOLDTIME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_holdtime.$touched || forms.announce.$submitted) && forms.announce.announce_holdtime.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANNOUNCE_HOLDTIME\' | translate}}</label>\n								<ui-select data-ng-model="queue.announce_holdtime" name="announce_holdtime" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\',\'once\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n									</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_ANNOUNCE_HOLDTIME\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.announce_holdtime.$touched || forms.announce.$submitted) && forms.announce.announce_holdtime.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ANNOUNCE_HOLDTIME -->\n\n							<!-- START ANNOUNCE_POSITION -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_position.$touched || forms.announce.$submitted) && forms.announce.announce_position.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANNOUNCE_POSITION\' | translate}}</label>\n								<ui-select data-ng-model="queue.announce_position" name="announce_position" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\',\'limit\',\'more\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_ANNOUNCE_POSITION\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.announce_position.$touched || forms.announce.$submitted) && forms.announce.announce_position.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ANNOUNCE_POSITION -->\n\n							<!-- START ANNOUNCE_POSITION_LIMIT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_position_limit.$touched || forms.announce.$submitted) && forms.announce.announce_position_limit.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANNOUNCE_POSITION_LIMIT\' | translate}}</label>\n								<input type="number" min="0" name="announce_position_limit" placeholder="{{\'APPLICATION_ANNOUNCE_POSITION_LIMIT\' | translate}}" class="form-control" data-ng-model="queue.announce_position_limit"/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_ANNOUNCE_POSITION_LIMIT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.announce_position_limit.$touched || forms.announce.$submitted) && forms.announce.announce_position_limit.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ANNOUNCE_POSITION_LIMIT -->\n\n							<!-- START REPORTHOLDTIME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.reportholdtime.$touched || forms.announce.$submitted) && forms.announce.reportholdtime.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REPORTHOLDTIME\' | translate}}</label>\n								<ui-select data-ng-model="queue.reportholdtime" name="reportholdtime" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_REPORTHOLDTIME\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.reportholdtime.$touched || forms.announce.$submitted) && forms.announce.reportholdtime.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END REPORTHOLDTIME -->\n\n						</div>\n							<div class="col-md-6">\n								<p><h3>{{\'APPLICATION_SOUNDS\' | translate}}</h3></p>\n								<!-- START QUEUE_REPORTHOLD -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_reporthold.$touched || forms.announce.$submitted) && forms.announce.queue_reporthold.$invalid}">\n									<label class="control-label">{{\'APPLICATION_QUEUE_REPORTHOLD\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="queue.queue_reporthold" name="queue_reporthold" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n										<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n											<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span class="help-block">\n										{{ \'DESCRIPTION_QUEUE_REPORTHOLD\' | translate }}\n									</span>\n									<span data-ng-show="(forms.announce.queue_reporthold.$touched || forms.announce.$submitted) && forms.announce.queue_reporthold.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END QUEUE_REPORTHOLD -->\n\n								<!-- START QUEUE_YOUARENEXT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_youarenext.$touched || forms.announce.$submitted) && forms.announce.queue_youarenext.$invalid}">\n									<label class="control-label">{{\'APPLICATION_QUEUE_YOUARENEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="queue.queue_youarenext" name="queue_youarenext" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n										<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n											<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span class="help-block">\n										{{ \'DESCRIPTION_QUEUE_YOUARENEXT\' | translate }}\n									</span>\n									<span data-ng-show="(forms.announce.queue_youarenext.$touched || forms.announce.$submitted) && forms.announce.queue_youarenext.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END QUEUE_YOUARENEXT -->\n\n							<!-- START QUEUE_THEREARE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_thereare.$touched || forms.announce.$submitted) && forms.announce.queue_thereare.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_THEREARE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_thereare" name="queue_thereare" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_THEREARE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_thereare.$touched || forms.announce.$submitted) && forms.announce.queue_thereare.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_THEREARE -->\n\n							<!-- START QUEUE_CALLSWAITING -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_callswaiting.$touched || forms.announce.$submitted) && forms.announce.queue_callswaiting.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_CALLSWAITING\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_callswaiting" name="queue_callswaiting" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_CALLSWAITING\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_callswaiting.$touched || forms.announce.$submitted) && forms.announce.queue_callswaiting.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_CALLSWAITING -->\n\n							<!-- START QUEUE_HOLDTIME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_holdtime.$touched || forms.announce.$submitted) && forms.announce.queue_holdtime.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_HOLDTIME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_holdtime" name="queue_holdtime" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_HOLDTIME\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_holdtime.$touched || forms.announce.$submitted) && forms.announce.queue_holdtime.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_HOLDTIME -->\n\n							<!-- START QUEUE_MINUTES -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_minutes.$touched || forms.announce.$submitted) && forms.announce.queue_minutes.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_MINUTES\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_minutes" name="queue_minutes" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MINUTES\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_minutes.$touched || forms.announce.$submitted) && forms.announce.queue_minutes.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_MINUTES -->\n\n							<!-- START QUEUE_MINUTE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_minute.$touched || forms.announce.$submitted) && forms.announce.queue_minute.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_MINUTE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_minute" name="queue_minute" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MINUTE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_minute.$touched || forms.announce.$submitted) && forms.announce.queue_minute.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_MINUTE -->\n\n							<!-- START QUEUE_SECONDS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_seconds.$touched || forms.announce.$submitted) && forms.announce.queue_seconds.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_SECONDS\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_seconds" name="queue_seconds" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_SECONDS\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_seconds.$touched || forms.announce.$submitted) && forms.announce.queue_seconds.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_SECONDS -->\n\n							<!-- START QUEUE_THANKYOU -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_thankyou.$touched || forms.announce.$submitted) && forms.announce.queue_thankyou.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_THANKYOU\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_thankyou" name="QUEUE_THANKYOU" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_THANKYOU\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_thankyou.$touched || forms.announce.$submitted) && forms.announce.queue_thankyou.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_THANKYOU -->\n\n						</div>\n					</div>\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n					<!-- ADVANCED TAB -->\n					<div class="tab-pane" id="tab_1_3">\n						<form name="forms.advanced" data-ng-submit="forms.advanced.$valid && updateVoiceQueue()" novalidate>\n\n							<div class="row">\n								<div class="col-md-6">\n\n							<!-- START AUTOPAUSE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.autopause.$touched || forms.advanced.$submitted) && forms.advanced.autopause.$invalid}">\n								<label class="control-label">{{\'APPLICATION_AUTOPAUSE\' | translate}}</label>\n								<ui-select data-ng-model="queue.autopause" name="autopause" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\',\'all\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_AUTOPAUSE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.autopause.$touched || forms.advanced.$submitted) && forms.advanced.autopause.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END AUTOPAUSE -->\n\n							<!-- START RINGINUSE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.ringinuse.$touched || forms.advanced.$submitted) && forms.advanced.ringinuse.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RINGINUSE\' | translate}}</label>\n								<ui-select data-ng-model="queue.ringinuse" name="ringinuse" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_RINGINUSE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.ringinuse.$touched || forms.advanced.$submitted) && forms.advanced.ringinuse.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RINGINUSE -->\n\n							<!-- START MEMBER_DELAY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.memberdelay.$touched || forms.advanced.$submitted) && forms.advanced.memberdelay.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MEMBER_DELAY\' | translate}}</label>\n								<input type="number" min="0" name="memberdelay" placeholder="{{\'APPLICATION_MEMBER_DELAY\' | translate}}" class="form-control" data-ng-model="queue.memberdelay" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MEMBER_DELAY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.memberdelay.$touched || forms.advanced.$submitted) && forms.advanced.memberdelay.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MEMBER_DELAY -->\n						</div>\n							<div class="col-md-6">\n\n							<!-- START TIMEOUTRESTART -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.timeoutrestart.$touched || forms.advanced.$submitted) && forms.advanced.timeoutrestart.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TIMEOUTRESTART\' | translate}}</label>\n								<ui-select data-ng-model="queue.timeoutrestart" name="timeoutrestart" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_TIMEOUTRESTART\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.timeoutrestart.$touched || forms.advanced.$submitted) && forms.advanced.timeoutrestart.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TIMEOUTRESTART -->\n\n							<!-- START MONITOR_FORMAT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.monitor_format.$touched || forms.advanced.$submitted) && forms.advanced.monitor_format.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MONITOR_FORMAT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.monitor_format" name="monitor_format" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="monFormat.value as monFormat in monitorFormats | filter: $select.search">\n										<div ng-bind-html="monFormat.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MONITOR_FORMAT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.monitor_format.$touched || forms.advanced.$submitted) && forms.advanced.monitor_format.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MONITOR_FORMAT -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.context.$touched || forms.advanced.$submitted) && forms.advanced.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}</label>\n								<ui-select data-ng-model="queue.context" name="context" theme="bootstrap">\n									<ui-select-match allow-clear placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.context.$touched || forms.advanced.$submitted) && forms.advanced.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n						</div>\n					</div>\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
+a.put("app/voice/queue/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-layers"></i>\n				<a href="/voice/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/voice/queues/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-layers font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_QUEUE\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.queue.$valid)">\n			    <form name="forms.queue" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.queue.name.$touched || forms.queue.$submitted) && forms.queue.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.queue.name.$touched || forms.queue.$submitted) && forms.queue.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n			      <!-- START STRATEGY -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.queue.strategy.$touched || forms.queue.$submitted) && forms.queue.strategy.$invalid}">\n							<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n								<ui-select-choices repeat="strategy in [\'ringall\', \'leastrecent\', \'fewestcalls\', \'random\', \'rrmemory\', \'linear\', \'wrandom\', \'rrordered\'] | filter: $select.search">\n									<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_QUEUE_STRATEGY\' | translate }}\n							</span>\n							<span data-ng-show="(forms.queue.strategy.$touched || forms.queue.$submitted) && forms.queue.strategy.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n			      <!-- END STRATEGY -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n\n\n			      <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/realtime/view/agent/agent.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n	<div class="col-md-12">\n	 <div ng-show="selected">Selection from a modal: {{ selected }}</div>\n		<!-- BEGIN TABLE -->\n			<table st-table="displayedGroups" st-safe-src="groups" class="table table-striped table-bordered table-hover">\n				<div class="table-responsive">\n				  <thead>\n						<tr>\n							<th colspan="10">\n								<div class="row">\n									<div class="col-md-6">\n										<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n												<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n									</div>\n									<div class="col-md-6">\n										<!-- <div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div> -->\n									</div>\n								</div>\n							</th>\n						</tr>\n						<tr>\n							<th st-sort="memebername" colspan="3">{{ \'APPLICATION_AGENT\' | translate }}</th>\n					    <th st-sort="queue">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_LOGIN\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_PAUSE\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_INCOMING_CALL\' | translate }}</th>\n							<th>{{ \'APPLICATION_SERVED\' | translate }}</th>\n							<th colspan="2"></th>\n					  </tr>\n				  </thead>\n					<tbody>\n				    <tr data-ng-repeat-start="group in displayedGroups">\n							<td rowspan="{{group.queues.length}}" align="center" style="vertical-align:middle">{{group.membername}}</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<span data-ng-class="{\'icon-like font-green\': queue.lastevent != \'called\' && queue.lastevent != \'connect\' ,\'icon-bell font-yellow\': queue.lastevent == \'called\', \'icon-call-in font-red\': queue.lastevent == \'connect\'}"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<span class="icon-cup" data-ng-class="queue.paused ? \'font-red\' : \'font-green\'"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								{{queue.queue}}\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{queue.loggedAt}}" data-ng-show="queue.logged">\n									April 1, 2014\n								</time>\n								 <span class="badge badge-empty badge-danger" data-ng-show="!queue.logged"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{queue.pausedAt}}" data-ng-show="queue.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{queue.paused ? \'(\' + queue.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{queue.lastcall}}" data-ng-show="queue.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								{{queue.callstaken}}\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<span data-ng-show="queue.logged" class="icon-cup pull-left" style="cursor:pointer;" ng-click="pause(null, queue)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" ng-click="remove(null, queue)"> </span>\n							</td>\n							<td rowspan="{{group.queues.length}}" align="center" style="vertical-align:middle">\n								<span data-ng-show="group.queues.length > 1" class="icon-cup pull-left" style="cursor:pointer;" ng-click="pause(null, group.queues)"> </span>\n								<span class="icon-plus font-green" style="cursor:pointer;" ng-click="add(null, group.queues)"> </span>\n								<span data-ng-show="group.queues.length > 1" class="icon-close font-red pull-right" style="cursor:pointer;" ng-click="remove(null, group.queues)"></span>\n							</td>\n				    </tr>\n						<tr data-ng-repeat="queue in group.queues" data-ng-if="$middle">\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$middle" align="center">\n								<span data-ng-class="{\'icon-like font-green\': queue.lastevent != \'called\' && queue.lastevent != \'connect\' ,\'icon-bell font-yellow\': queue.lastevent == \'called\', \'icon-call-in font-red\': queue.lastevent == \'connect\'}"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$middle" align="center">\n								<span class="icon-cup" data-ng-class="queue.paused ? \'font-red\' : \'font-green\'"></span>\n							</td>\n							<td align="center">\n								{{queue.queue}}\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{queue.loggedAt}}" data-ng-show="queue.logged">\n									April 1, 2014\n								</time>\n								<span class="badge badge-empty badge-danger" data-ng-show="!queue.logged"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$middle" align="center">\n								<time is="relative-time" datetime="{{queue.pausedAt}}" data-ng-show="queue.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{queue.paused ? \'(\' + queue.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{queue.lastcall}}" data-ng-show="queue.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$middle" align="center">\n								{{queue.callstaken}}\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$middle" align="center">\n								<span data-ng-show="queue.logged" class="icon-cup pull-left" style="cursor:pointer;" ng-click="pause(null, queue)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" ng-click="remove(null, queue)"> </span>\n							</td>\n						</tr>\n						<tr data-ng-repeat="queue in group.queues" data-ng-if="group.queues.length > 1 && $last" data-ng-repeat-end>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$last" align="center">\n								<span data-ng-class="{\'icon-like font-green\': queue.lastevent != \'called\' && queue.lastevent != \'connect\' ,\'icon-bell font-yellow\': queue.lastevent == \'called\', \'icon-call-in font-red\': queue.lastevent == \'connect\'}"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$last" align="center">\n								<span class="icon-cup" data-ng-class="queue.paused ? \'font-red\': \'font-green\'"></span>\n							</td>\n							<td align="center">\n								{{queue.queue}}\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{queue.loggedAt}}" data-ng-show="queue.logged">\n									April 1, 2014\n								</time>\n								<span class="badge badge-empty badge-danger" data-ng-show="!queue.logged"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$last" align="center">\n								<time is="relative-time" datetime="{{queue.pausedAt}}" data-ng-show="queue.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{queue.paused ? \'(\' + queue.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{queue.lastcall}}" data-ng-show="queue.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$last" align="center">\n								{{queue.callstaken}}\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$last" align="center">\n								<span data-ng-show="queue.logged" class="icon-cup pull-left" style="cursor:pointer;" ng-click="pause(null, queue)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" ng-click="remove(null, queue)"> </span>\n							</td>\n						</tr>\n						<tr data-ng-hide="displayedGroups.length">\n							<td colspan="9" style="text-align:center;">\n								<i>No agents available</i>\n							</td>\n						</tr>\n				  </tbody>\n				  <tfoot>\n						<tr>\n							<td colspan="1">\n								<div class="input-icon right">\n									<i class="fa fa-search"></i>\n									<input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n								</div>\n							<td colspan="9"></td>\n					  </tr>\n				    <tr>\n				      <td colspan="10" class="text-center">\n								<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n				      </td>\n				    </tr>\n				  </tfoot>\n				</div>\n			</table>\n		<!-- END TABLE -->\n	</div>\n\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/realtime/view/agent/pause.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_PAUSE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item" data-ng-hide="data.length">\n				 {{ \'APPLICATION_QUEUE\' | translate }}: <b class="pull-right">{{ selected.queue }}</b>\n			</li>\n      <li class="list-group-item">\n				 {{ \'APPLICATION_AGENT\' | translate }}: <b class="pull-right">{{ selected.membername }}</b>\n			</li>\n      <li class="list-group-item">\n        <div class="btn-group">\n          <ui-select ng-model="selected.item" theme="bootstrap" ng-disabled="disabled" class="btn input-xlarge pull-left">\n            <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected}}</ui-select-match>\n            <ui-select-choices repeat="item in items | filter: $select.search">\n              <div ng-bind-html="item | highlight: $select.search"></div>\n            </ui-select-choices>\n          </ui-select>\n          <button class="btn btn-success pull-right" type="button" ng-click="ok(true)" style="margin-top: 7px;">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n        </div>\n			</li>\n		</ul>\n	</div>\n  <button data-ng-show="(data | isArray) ? (data | where: {paused: true}).length : data.paused " class="btn btn-danger btn-block" type="button" ng-click="ok(false, data.queue)">Exit</button>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/agent/queue.modal.add.html",'<div class="modal-header" data-ng-init="initAdd()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info" data-ng-show="selected.queue">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="queues.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.queue" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_QUEUE\' | translate}}">{{$select.selected.name}}</ui-select-match>\n              <ui-select-choices repeat="queue.name as queue in queues | filter: $select.search">\n                <div ng-bind-html="queue.name | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PENALTY\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="number" min="0" max="10" placeholder="{{\'APPLICATION_PENALTY\' | translate}}" class="form-control" data-ng-model="selected.penalty"/>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PAUSE\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.paused" btn-checkbox> {{ selected.paused ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="selected.paused">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_REASON\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.reason" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_REASON\' | translate}}">{{$select.selected}}</ui-select-match>\n              <ui-select-choices repeat="pause in pauses | filter: $select.search">\n                <div ng-bind-html="pause | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGIN\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.login" btn-checkbox> {{ selected.login ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n		</ul>\n    <!-- End List group -->\n  </div>\n  <div class="note note-warning" data-ng-hide="selected.queue">\n    <h4 class="block">Warning!</h4>\n    <p>\n       {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\n    </p>\n  </div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="okAdd()" data-ng-show="selected.queue">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/agent/queue.modal.remove.html",'<div class="modal-header" data-ng-init="initRemove()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_REMOVAL\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item" data-ng-hide="data.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="data.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGOUT\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.logout" btn-checkbox> {{ selected.logout ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n            <span class="help-block">{{ \'MESSAGE_PERMANENT_REMOVAL_FROM_QUEUE\' | translate }}. </span>\n          </div>\n				</div>\n      </li>\n		</ul>\n	</div>\n  <button class="btn btn-danger btn-block" type="button" ng-click="okRemove()">{{ \'APPLICATION_REMOVE\' | translate }}</button>\n</div>\n<div class="modal-footer">\n  <!-- <button class="btn btn-success" type="button" ng-click="okRemove()">{{ \'APPLICATION_CONFIRM\' | translate }}</button> -->\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/areport/report.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initReport()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedAgents" st-safe-src="agents" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="11">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n											<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="calleridname">{{ \'APPLICATION_CALLER\' | translate }}</th>\n						<th st-sort="agentcalledAt">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n						<th st-sort="agentconnectAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n						<th st-sort="agentcompleteAt">{{ \'APPLICATION_COMPLETED_AT\' | translate }}</th>\n						<th st-sort="reason">{{ \'APPLICATION_REASON\' | translate }}</th>\n						<th st-sort="holdtime">{{ \'APPLICATION_HOLDTIME\' | translate }}</th>\n				    <th st-sort="talktime">{{ \'APPLICATION_TALKTIME\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="agent in displayedAgents">\n						<td><span data-ng-class="{\'icon-call-in font-yellow\': agent.lastevent === \'called\',\n							\'icon-phone font-blue\': agent.lastevent === \'connect\',\n							\'icon-call-end font-green\': agent.lastevent === \'complete\',\n							\'icon-call-end font-red\': agent.lastevent === \'answered_elsewhere\'}"></span>\n						</td>\n						<td>{{agent.uniqueid}}</td>\n						<td>{{agent.queue}}</td>\n						<td>{{agent.destcalleridname ? agent.destcalleridname + \' [\' + agent.membername + \']\' : agent.membername }}</td>\n						<td>{{agent.calleridname ? agent.calleridname + \' [\' + agent.calleridnum + \']\' : agent.calleridnum }}</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentcalledAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentconnectAt}}" data-ng-show="agent.agentconnectAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentcompleteAt}}" data-ng-show="agent.agentcompleteAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							{{agent.reason | uppercase}}\n						</td>\n						<td>{{agent.holdtime || 0 | VoiceRealtimeViewAgentReportFilter | date:\'HH:mm:ss\'}}</td>\n			      <td>{{agent.talktime || 0 | VoiceRealtimeViewAgentReportFilter | date:\'HH:mm:ss\'}}</td>\n			    </tr>\n					<tr data-ng-hide="displayedAgents.length">\n						<td colspan="11" style="text-align:center;">\n							<i>No agents available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="calleridnum" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CALLER\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="7"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="11" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/realtime/view/qreport/report.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initReport()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedQueues" st-safe-src="queues" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="10">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.queuesByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="queueByPage in queuesByPage | filter: $select.search">\n											<div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search"/>\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="calleridname">{{ \'APPLICATION_CALLER\' | translate }}</th>\n						<th st-sort="queuecallerjoinAt">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n						<th st-sort="queuecallerleaveAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n						<th st-sort="queuecallerabandonAt">{{ \'APPLICATION_ABANDONED_AT\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="queue in displayedQueues">\n						<td><span data-ng-class="{\'icon-call-in font-yellow\': queue.queuecallerjoinAt && !queue.queuecallerleaveAt,\n							\'icon-phone font-blue\': queue.queuecallerjoinAt && queue.queuecallerleaveAt,\n							\'icon-call-end font-red\': queue.queuecallerjoinAt && queue.queuecallerleaveAt && queue.queuecallerabandonAt}"></span>\n						</td>\n						<td>{{queue.uniqueid}}</td>\n						<td>{{queue.queue}}</td>\n						<td>{{queue.connectedlinename ? queue.connectedlinename + \' [\' + queue.connectedlinenum + \']\' : queue.connectedlinenum }}</td>\n						<td>{{queue.calleridname ? queue.calleridname + \' [\' + queue.calleridnum + \']\' : queue.calleridnum }}</td>\n						<td>\n							<time is="relative-time" datetime="{{queue.queuecallerjoinAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{queue.queuecallerleaveAt}}" data-ng-show="queue.queuecallerleaveAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{queue.queuecallerabandonAt}}" data-ng-show="queue.queuecallerabandonAt">\n								April 1, 2014\n							</time>\n						</td>\n			    </tr>\n					<tr data-ng-hide="displayedQueues.length">\n						<td colspan="10" style="text-align:center;">\n							<i>No queues available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="connectedlinename" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="calleridnum" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CALLER\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="6"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="10" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.queuesByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/voice/realtime/view/queue/pause.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_PAUSE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n				 {{ \'APPLICATION_QUEUE\' | translate }}: <b class="pull-right">{{ selected.queue }}</b>\n			</li>\n      <li class="list-group-item" data-ng-hide="data.length">\n				 {{ \'APPLICATION_AGENT\' | translate }}: <b class="pull-right">{{ selected.membername }}</b>\n			</li>\n      <li class="list-group-item">\n        <div class="btn-group">\n          <ui-select ng-model="selected.item" theme="bootstrap" ng-disabled="disabled" class="btn input-xlarge pull-left">\n            <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected}}</ui-select-match>\n            <ui-select-choices repeat="item in items | filter: $select.search">\n              <div ng-bind-html="item | highlight: $select.search"></div>\n            </ui-select-choices>\n          </ui-select>\n          <button class="btn btn-success pull-right" type="button" ng-click="ok(true)" style="margin-top: 7px;">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n        </div>\n			</li>\n		</ul>\n	</div>\n  <button data-ng-show="(data | isArray) ? (data | where: {paused: true}).length : data.paused " class="btn btn-danger btn-block" type="button" ng-click="ok(false, data.queue)">Exit</button>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/queue/queue.add.modal.html",'<div class="modal-header" data-ng-init="initAdd()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="queues.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.queue" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_QUEUE\' | translate}}">{{$select.selected.name}}</ui-select-match>\n              <ui-select-choices repeat="queue.name as queue in queues | filter: $select.search">\n                <div ng-bind-html="queue.name | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PENALTY\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="number" min="0" max="10" placeholder="{{\'APPLICATION_PENALTY\' | translate}}" class="form-control" data-ng-model="selected.penalty"/>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PAUSE\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.paused" ui-btn-checkbox> {{ selected.paused ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="selected.paused">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_REASON\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.reason" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_REASON\' | translate}}">{{$select.selected}}</ui-select-match>\n              <ui-select-choices repeat="pause in pauses | filter: $select.search">\n                <div ng-bind-html="pause | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGIN\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.login" ui-btn-checkbox> {{ selected.login ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n		</ul>\n	</div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="okAdd()">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/queue/queue.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initQueues()">\n	<div class="col-md-12">\n	 <div ng-show="selected">Selection from a modal: {{ selected }}</div>\n		<!-- BEGIN TABLE -->\n			<table st-table="displayedGroups" st-safe-src="groups" class="table table-striped table-bordered table-hover">\n				<div class="table-responsive">\n				  <thead>\n						<tr>\n							<th colspan="10">\n								<div class="row">\n									<div class="col-md-6">\n										<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n												<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n									</div>\n									<div class="col-md-6">\n										<!-- <div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div> -->\n									</div>\n								</div>\n							</th>\n						</tr>\n						<tr>\n							<th st-sort="memebername" colspan="3">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n					    <th st-sort="agent">{{ \'APPLICATION_AGENT\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_LOGIN\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_PAUSE\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_INCOMING_CALL\' | translate }}</th>\n							<th>{{ \'APPLICATION_SERVED\' | translate }}</th>\n							<th colspan="2"></th>\n					  </tr>\n				  </thead>\n					<tbody>\n				    <tr data-ng-repeat-start="group in displayedGroups">\n							<td rowspan="{{group.agents.length}}" align="center" style="vertical-align:middle">{{group.queue}}</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<span data-ng-class="{\'icon-like font-green\': agent.lastevent != \'called\' && agent.lastevent != \'connect\' ,\'icon-bell font-yellow\': agent.lastevent == \'called\', \'icon-call-in font-red\': agent.lastevent == \'connect\'}"></span>\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<span class="icon-cup" data-ng-class="agent.paused ? \'font-red\' : \'font-green\'"></span>\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								{{agent.membername}}\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{agent.loggedAt}}" data-ng-show="agent.logged">\n									April 1, 2014\n								</time>\n								 <span class="badge badge-empty badge-danger" data-ng-show="!agent.logged"></span>\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{agent.pausedAt}}" data-ng-show="agent.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{agent.paused ? \'(\' + agent.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{agent.lastcall}}" data-ng-show="agent.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								{{agent.callstaken}}\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<span data-ng-show="agent.logged" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, agent)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, agent)"> </span>\n							</td>\n							<td rowspan="{{group.agents.length}}" align="center" style="vertical-align:middle">\n								<span data-ng-show="group.agents.length > 1" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, group.agents)"> </span>\n								<span class="icon-plus font-green" style="cursor:pointer;" data-ng-click="add(null, group.agents)"> </span>\n								<span data-ng-show="group.agents.length > 1" class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, group.agents)"></span>\n							</td>\n				    </tr>\n						<tr data-ng-repeat="agent in group.agents" data-ng-if="$middle">\n							<td align="center">\n								<span data-ng-class="{\'icon-like font-green\': agent.lastevent != \'called\' && agent.lastevent != \'connect\' ,\'icon-bell font-yellow\': agent.lastevent == \'called\', \'icon-call-in font-red\': agent.lastevent == \'connect\'}"></span>\n							</td>\n							<td align="center">\n								<span class="icon-cup" data-ng-class="agent.paused ? \'font-red\' : \'font-green\'"></span>\n							</td>\n							<td align="center">\n								{{agent.membername}}\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.loggedAt}}" data-ng-show="agent.logged">\n									April 1, 2014\n								</time>\n								<span class="badge badge-empty badge-danger" data-ng-show="!agent.logged"></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.pausedAt}}" data-ng-show="agent.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{agent.paused ? \'(\' + agent.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.lastcall}}" data-ng-show="agent.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td align="center">\n								{{agent.callstaken}}\n							</td>\n							<td align="center">\n								<span data-ng-show="agent.logged" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, agent)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, agent)"> </span>\n							</td>\n						</tr>\n						<tr data-ng-repeat="agent in group.agents" data-ng-if="group.agents.length > 1 && $last" data-ng-repeat-end>\n							<td align="center">\n								<span data-ng-class="{\'icon-like font-green\': agent.lastevent != \'called\' && agent.lastevent != \'connect\' ,\'icon-bell font-yellow\': agent.lastevent == \'called\', \'icon-call-in font-red\': agent.lastevent == \'connect\'}"></span>\n							</td>\n							<td align="center">\n								<span class="icon-cup" data-ng-class="agent.paused ? \'font-red\': \'font-green\'"></span>\n							</td>\n							<td align="center">\n								{{agent.membername}}\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.loggedAt}}" data-ng-show="agent.logged">\n									April 1, 2014\n								</time>\n								<span class="badge badge-empty badge-danger" data-ng-show="!agent.logged"></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.pausedAt}}" data-ng-show="agent.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{agent.paused ? \'(\' + agent.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.lastcall}}" data-ng-show="agent.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td align="center">\n								{{agent.callstaken}}\n							</td>\n							<td align="center">\n								<span data-ng-show="agent.logged" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, agent)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, agent)"> </span>\n							</td>\n						</tr>\n						<tr data-ng-hide="displayedGroups.length">\n							<td colspan="9" style="text-align:center;">\n								<i>No agents available</i>\n							</td>\n						</tr>\n				  </tbody>\n				  <tfoot>\n						<tr>\n							<td colspan="1">\n								<div class="input-icon right">\n									<i class="fa fa-search"></i>\n									<input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n								</div>\n							<td colspan="9"></td>\n					  </tr>\n				    <tr>\n				      <td colspan="10" class="text-center">\n								<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n				      </td>\n				    </tr>\n				  </tfoot>\n				</div>\n			</table>\n		<!-- END TABLE -->\n	</div>\n\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/realtime/view/queue/queue.modal.add.html",'<div class="modal-header" data-ng-init="initAdd()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info" data-ng-show="selected.queue">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="agents.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.agent" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_AGENT\' | translate}}">{{$select.selected.name}}</ui-select-match>\n              <ui-select-choices repeat="{name: agent.name, id: agent.id} as agent in agents | filter: $select.search">\n                <div ng-bind-html="agent.name | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PENALTY\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="number" min="0" max="10" placeholder="{{\'APPLICATION_PENALTY\' | translate}}" class="form-control" data-ng-model="selected.penalty"/>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PAUSE\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.paused" btn-checkbox> {{ selected.paused ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="selected.paused">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_REASON\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.reason" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_REASON\' | translate}}">{{$select.selected}}</ui-select-match>\n              <ui-select-choices repeat="pause in pauses | filter: $select.search">\n                <div ng-bind-html="pause | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGIN\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.login" btn-checkbox> {{ selected.login ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n		</ul>\n    <!-- End List group -->\n  </div>\n  <div class="note note-warning" data-ng-hide="selected.queue">\n    <h4 class="block">Warning!</h4>\n    <p>\n       {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\n    </p>\n  </div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="okAdd()" data-ng-show="selected.queue">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/queue/queue.modal.remove.html",'<div class="modal-header" data-ng-init="initRemove()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_REMOVAL\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row" data-ng-hide="data.length">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGOUT\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.logout" btn-checkbox> {{ selected.logout ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n            <span class="help-block">{{ \'MESSAGE_PERMANENT_REMOVAL_FROM_QUEUE\' | translate }}. </span>\n          </div>\n				</div>\n      </li>\n		</ul>\n	</div>\n  <button class="btn btn-danger btn-block" type="button" ng-click="okRemove()">{{ \'APPLICATION_REMOVE\' | translate }}</button>\n</div>\n<div class="modal-footer">\n  <!-- <button class="btn btn-success" type="button" ng-click="okRemove()">{{ \'APPLICATION_CONFIRM\' | translate }}</button> -->\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/queue/queue.remove.modal.html",'<div class="modal-header" data-ng-init="initRemove()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_REMOVAL\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-hide="data.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGOUT\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.logout" btn-checkbox> {{ selected.logout ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n            <span class="help-block">{{ \'MESSAGE_PERMANENT_REMOVAL_FROM_QUEUE\' | translate }}. </span>\n          </div>\n				</div>\n      </li>\n		</ul>\n	</div>\n  <button class="btn btn-danger btn-block" type="button" ng-click="okRemove()">{{ \'APPLICATION_REMOVE\' | translate }}</button>\n</div>\n<div class="modal-footer">\n  <!-- <button class="btn btn-success" type="button" ng-click="okRemove()">{{ \'APPLICATION_CONFIRM\' | translate }}</button> -->\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-energy"></i>\n					<a href="/voice/realtime/list">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<div>\n		    <nav class="navbar navbar-default" role="navigation">\n		        <div class="navbar-header">\n		            <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n		                <span class="sr-only">Toggle navigation</span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		            </button>\n		            <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n		        </div>\n\n		        <!-- Collect the nav links, forms, and other content for toggling -->\n		        <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n		            <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_AGENTS\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'agents\'></tree>\n		                </li>\n		            </ul>\n		            <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_QUEUES\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'queues\'></tree>\n		                </li>\n		            </ul>\n		        </div>\n		        <!-- /.navbar-collapse -->\n		    </nav>\n		</div>\n		<div ui-view></div>\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/inbound/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-call-in"></i>\n					<a href="/voice/routes/inbound/list">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-users font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="routes.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/routes/inbound/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getRoutes([\'context\', \'exten\', \'app\', \'appdata\', \'description\'])" csv-header="[\'Context\', \'Exten\', \'App\', \'Appdata\', \'Description\']" field-separator=";" filename="routes_inbound.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedRoutes" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.routesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="routeByPage in routesByPage | filter: $select.search">\n													<div ng-bind-html="routeByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(checked)" checklist-model checklist-value="id"></th>\n                <th st-sort="exten">{{ \'APPLICATION_DID\' | translate }}</th>\n								<th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="route in displayedRoutes"  class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="routes.checked" checklist-value="route.id"></td>\n								<td>{{route.exten}}</td>\n								<td>{{route.context}}</td>\n					      <td>{{route.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/inbound/view/{{route.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(route.exten,route.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedRoutes.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_ROUTES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n                <td>\n                  <div class="input-icon right">\n                    <i class="fa fa-search"></i>\n                    <input st-search="exten" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DID\' | translate | lowercase}}" class="form-control" type="search"/>\n                  </div>\n                </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.routesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/voice/route/inbound/view/view.application.html",'\n<div class="row" data-ng-init="initApplication(); getIntervals();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_NEW_APPLICATION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<div class="profile-usertitle-name">\n						{{(main.app | capitalize) || \'Application\'}}\n					</div>\n	        <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.settings.$valid)">\n							<form name="forms.settings" novalidate>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n									<!-- START APP -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="main.app" name="app" theme="bootstrap" required>\n					            <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n					            <ui-select-choices repeat="app.value as app in $application.applications| filter: $select.search">\n					              <div ng-bind-html="app.name | highlight: $select.search"></div>\n					            </ui-select-choices>\n					          </ui-select>\n										<span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END APP -->\n\n									<div id="Queue" class="app-settings" ng-slide-down="main.app == \'Queue\'" lazy-render duration="1">\n										<!-- START QUEUE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n											<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.queue" name="queue" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="queue.name as queue in items | filter: $select.search">\n													<div ng-bind-html="queue.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END QUEUE -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n											<ui-select multiple data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($item.name)}}</ui-select-match>\n												<ui-select-choices repeat="queueOpt.value as queueOpt in $application.queueOptions | filter: $select.search">\n													{{$translate.instant(queueOpt.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n\n										<!-- START URL -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END URL -->\n\n										<!-- START AUDIOFILE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n											<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}</label>\n											<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n												<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items2 | filter: $select.search">\n													<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END AUDIOFILE -->\n\n										<!-- START TIMEOUT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n											<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n											<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END TIMEOUT -->\n\n									</div>\n									<div id="Playback" class="app-settings" ng-slide-down="main.app == \'Playback\'" lazy-render duration="1">\n										<!-- START AUDIOFILE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n											<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n												<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items | filter: $select.search">\n													<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END AUDIOFILE -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n											<ui-select data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n												<ui-select-choices repeat="audioOpt.value as audioOpt in $application.audioOptions | filter: $select.search">\n													{{$translate.instant(audioOpt.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n									</div>\n									<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n										<!-- START INTERFACE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}/{{ \'APPLICATION_IDENTIFIER\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="interface" placeholder="SIP/0000" class="form-control" data-ng-model="application.interface" required>\n											<span data-ng-show="(forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid && forms.settings.interface.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END INTERFACE -->\n\n										<!-- START TIMEOUT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n											<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n											<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END TIMEOUT -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_OPTIONS\' | translate }}</label>\n											<input type="text" name="app_options" placeholder="" class="form-control" data-ng-model="application.app_options">\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n\n										<!-- START URL -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END URL -->\n									</div>\n									<div id="AGI" class="app-settings" ng-slide-down="main.app == \'AGI\'" lazy-render duration="1">\n										<!-- START PROJECT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$invalid}">\n											<label class="control-label">{{\'APPLICATION_PROJECT\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.project" name="project" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="project.name as project in items | filter: $select.search">\n													<div ng-bind-html="project.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END PROJECT -->\n\n										<!-- START URL -->\n										<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<div class="input-group">\n												<input type="text" name="url" placeholder="agi://127.0.0.1/square" class="form-control" data-ng-model="application.url" data-ng-disabled="!application.urlEnabled" data-ng-required="application.urlEnabled" rpattern="/^agi:\\/\\/(?:[0-9]{1,3}\\.){3}[0-9]{1,3}\\/square$/">\n												<span class="input-group-addon">\n													<input type="checkbox" data-ng-model="application.urlEnabled">\n												</span>\n											</div>\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.pattern" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n											</span>\n										</div> -->\n										<!-- END URL -->\n\n									</div>\n									<div id="Goto" class="app-settings" ng-slide-down="main.app == \'Goto\'" lazy-render duration="1">\n										<!-- START CONTEXT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$invalid}">\n											<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.alt_context" name="context" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="context.name as context in items | filter: $select.search">\n													<div ng-bind-html="context.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END CONTEXT -->\n\n										<!-- START EXTENSION -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_EXTENSION\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="extension" placeholder="" class="form-control" data-ng-model="application.alt_extension" required>\n											<span data-ng-show="(forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid && forms.settings.extension.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END EXTENSION -->\n\n										<!-- START PRIORITY -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_PRIORITY\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="number" name="priority" placeholder="" class="form-control" data-ng-model="application.alt_priority" required>\n											<span data-ng-show="(forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END PRIORITY -->\n									</div>\n									<div id="Hangup" class="app-settings" ng-slide-down="main.app == \'Hangup\'" lazy-render duration="1">\n										<!-- START HANGUPCAUSE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$invalid}">\n											<label class="control-label">{{\'APPLICATION_HANGUP_CAUSE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.causecode" theme="bootstrap" name="hangupCause" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n												<ui-select-choices repeat="hangupCause.value as hangupCause in $application.hangupCauses | filter: $select.search">\n													{{$translate.instant(hangupCause.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END HANGUPCAUSE -->\n									</div>\n									<div id="Set" class="app-settings" ng-slide-down="main.app == \'Set\'" lazy-render duration="1">\n										<!-- START VARIABLE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_VARIABLE\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="variable" placeholder="" class="form-control" data-ng-model="application.variable" required>\n											<span data-ng-show="(forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid && forms.settings.variable.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VARIABLE -->\n\n										<!-- START VARVALUE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_VALUE\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="varvalue" placeholder="" class="form-control" data-ng-model="application.value" required>\n											<span data-ng-show="(forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid && forms.settings.varvalue.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VARVALUE -->\n									</div>\n									<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n										<!-- START CUSTOMAPP -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n											<span data-ng-show="(forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid && forms.settings.customApp.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END CUSTOMAPP -->\n\n										<!-- START APPDATA -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n											<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n											<span data-ng-show="(forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid && forms.settings.appdata.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END APPDATA -->\n									</div>\n									<div id="Voicemail" class="app-settings" ng-slide-down="main.app == \'Voicemail\'" lazy-render duration="1">\n										<!-- START VOICEMAIL -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="voicemail" placeholder="{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}" class="form-control" data-ng-model="application.mailbox" required>\n											<span data-ng-show="(forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid && forms.settings.voicemail.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VOICEMAIL -->\n									</div>\n									<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								</form>\n								</wz-step>\n									<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n										<form name="forms.interval" novalidate>\n										<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n										<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n									<!-- START INTERVAL_TYPE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n										<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n												{{$translate.instant(intType.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END INTERVAL_TYPE -->\n									<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n											<!-- START TIME -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n												<div class="input-group input-large">\n													<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n													<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n													<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n													<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n												</div>\n											</div>\n											<!-- END TIME -->\n\n											<!-- START WEEKDAY -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n															{{$translate.instant(weekDay.name)}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n															{{$translate.instant(weekDay.name)}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END WEEKDAY -->\n\n											<!-- START MONTHDAY -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n														<ui-select-match>{{$select.selected}}</ui-select-match>\n														<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n															{{monthDay}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n														<ui-select-match>{{$select.selected}}</ui-select-match>\n														<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n															{{monthDay}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END MONTHDAY -->\n\n											<!-- START MONTH -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n															{{$translate.instant(month.name)}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n															{{$translate.instant(month.name)}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END MONTH -->\n							</div>\n\n							<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n								<!-- START INTERVALS -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n											{{$translate.instant(interval.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVALS -->\n\n							</div>\n								<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/voice/route/inbound/view/view.applicationSettings.html",'\n<div class="row" data-ng-init="initApplication();getIntervals();getApplication();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_APPLICATION_SETTINGS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="updateItem()">\n					<div class="profile-usertitle-name">\n						{{(main.app | capitalize) || \'Application\'}}\n					</div>\n	        <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.settings.$valid)">\n							<form name="forms.settings" novalidate>\n\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								<div id="Queue" class="app-settings" ng-slide-down="main.app == \'Queue\'" lazy-render duration="1">\n									<!-- START QUEUE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n										<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.queue" name="queue" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="queue.name as queue in items | filter: $select.search">\n												<div ng-bind-html="queue.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END QUEUE -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n										<ui-select multiple data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($item.name)}}</ui-select-match>\n											<ui-select-choices repeat="queueOpt.value as queueOpt in $application.queueOptions | filter: $select.search">\n												{{$translate.instant(queueOpt.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n\n									<!-- START URL -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END URL -->\n\n									<!-- START AUDIOFILE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n										<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}</label>\n										<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n											<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items2 | filter: $select.search">\n												<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END AUDIOFILE -->\n\n									<!-- START TIMEOUT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n										<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n										<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END TIMEOUT -->\n\n								</div>\n								<div id="Playback" class="app-settings" ng-slide-down="main.app == \'Playback\'" lazy-render duration="1">\n									<!-- START AUDIOFILE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n										<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n											<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items | filter: $select.search">\n												<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END AUDIOFILE -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n										<ui-select data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="audioOpt.value as audioOpt in $application.audioOptions | filter: $select.search">\n												{{$translate.instant(audioOpt.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n								</div>\n								<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n									<!-- START INTERFACE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}/{{ \'APPLICATION_IDENTIFIER\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="interface" placeholder="SIP/0000" class="form-control" data-ng-model="application.interface" required>\n										<span data-ng-show="(forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid && forms.settings.interface.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END INTERFACE -->\n\n									<!-- START TIMEOUT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n										<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n										<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END TIMEOUT -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_OPTIONS\' | translate }}</label>\n										<input type="text" name="app_options" placeholder="" class="form-control" data-ng-model="application.app_options">\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n\n									<!-- START URL -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END URL -->\n								</div>\n								<div id="AGI" class="app-settings" ng-slide-down="main.app == \'AGI\'" lazy-render duration="1">\n									<!-- START PROJECT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$invalid}">\n										<label class="control-label">{{\'APPLICATION_PROJECT\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.project" name="project" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="project.name as project in items | filter: $select.search">\n												<div ng-bind-html="project.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END PROJECT -->\n\n									<!-- START URL -->\n									<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<div class="input-group">\n											<input type="text" name="url" placeholder="agi://127.0.0.1/square" class="form-control" data-ng-model="application.url" data-ng-disabled="!application.urlEnabled" data-ng-required="application.urlEnabled" rpattern="/^agi:\\/\\/(?:[0-9]{1,3}\\.){3}[0-9]{1,3}\\/square$/">\n											<span class="input-group-addon">\n												<input type="checkbox" data-ng-model="application.urlEnabled">\n											</span>\n										</div>\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.pattern" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n										</span>\n									</div> -->\n									<!-- END URL -->\n\n								</div>\n								<div id="Goto" class="app-settings" ng-slide-down="main.app == \'Goto\'" lazy-render duration="1">\n									<!-- START CONTEXT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$invalid}">\n										<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.alt_context" name="context" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="context.name as context in items | filter: $select.search">\n												<div ng-bind-html="context.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END CONTEXT -->\n\n									<!-- START EXTENSION -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_EXTENSION\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="extension" placeholder="" class="form-control" data-ng-model="application.alt_extension" required>\n										<span data-ng-show="(forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid && forms.settings.extension.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END EXTENSION -->\n\n									<!-- START PRIORITY -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_PRIORITY\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="number" name="priority" placeholder="" class="form-control" data-ng-model="application.alt_priority" required>\n										<span data-ng-show="(forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END PRIORITY -->\n								</div>\n								<div id="Hangup" class="app-settings" ng-slide-down="main.app == \'Hangup\'" lazy-render duration="1">\n									<!-- START HANGUPCAUSE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$invalid}">\n										<label class="control-label">{{\'APPLICATION_HANGUP_CAUSE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.causecode" theme="bootstrap" name="hangupCause" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="hangupCause.value as hangupCause in $application.hangupCauses | filter: $select.search">\n												{{$translate.instant(hangupCause.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END HANGUPCAUSE -->\n								</div>\n								<div id="Set" class="app-settings" ng-slide-down="main.app == \'Set\'" lazy-render duration="1">\n									<!-- START VARIABLE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_VARIABLE\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="variable" placeholder="" class="form-control" data-ng-model="application.variable" required>\n										<span data-ng-show="(forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid && forms.settings.variable.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VARIABLE -->\n\n									<!-- START VARVALUE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_VALUE\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="varvalue" placeholder="" class="form-control" data-ng-model="application.value" required>\n										<span data-ng-show="(forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid && forms.settings.varvalue.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VARVALUE -->\n								</div>\n								<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n									<!-- START CUSTOMAPP -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n										<span data-ng-show="(forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid && forms.settings.customApp.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END CUSTOMAPP -->\n\n									<!-- START APPDATA -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n										<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n										<span data-ng-show="(forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid && forms.settings.appdata.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END APPDATA -->\n								</div>\n								<div id="Voicemail" class="app-settings" ng-slide-down="main.app == \'Voicemail\'" lazy-render duration="1">\n									<!-- START VOICEMAIL -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="voicemail" placeholder="{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}" class="form-control" data-ng-model="application.mailbox" required>\n										<span data-ng-show="(forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid && forms.settings.voicemail.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VOICEMAIL -->\n								</div>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n							</wz-step>\n								<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n									<form name="forms.interval" novalidate>\n										<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n										<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								<!-- START INTERVAL_TYPE -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n											{{$translate.instant(intType.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVAL_TYPE -->\n								<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n										<!-- START TIME -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n											<div class="input-group input-large">\n												<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n												<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n											</div>\n											</div>\n										<!-- END TIME -->\n\n										<!-- START WEEKDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END WEEKDAY -->\n\n										<!-- START MONTHDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTHDAY -->\n\n										<!-- START MONTH -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTH -->\n						</div>\n\n						<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n							<!-- START INTERVALS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n									<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n										{{$translate.instant(interval.name)}}\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERVALS -->\n\n						</div>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/voice/route/inbound/view/view.applications.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getRouteApplications()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/voice/routes/inbound/view/{{route.id}}/application" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_APPLICATION\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th>{{ \'APPLICATION_APPLICATION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ARGUMENTS\' | translate }}</th>\n						    <th>{{ \'APPLICATION_TIME\' | translate }}</th>\n								<th width="20%"></th>\n						  </tr>\n					  </thead>\n					  <tbody ui-sortable="sortableOptions" data-ng-model="routeApplications">\n					    <tr data-ng-repeat="application in routeApplications | orderBy:\'priority\'">\n								<td>{{application.app}}</td>\n								<td>{{application.appdata}}</td>\n								<td>{{application.interval}}</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/inbound/view/{{route.id}}/applications/settings/{{application.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app+\' application\',application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="routeApplications.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n</div>\n'),a.put("app/voice/route/inbound/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getRoute()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-call-in"></i>\n					<a href="/voice/routes/inbound/list">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n					<i data-ng-show="route" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="route">\n					<a href="#">{{route.exten}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/inboundroute.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{route.exten}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.inbound.view.settings\')}">\n							<a data-ng-href="/voice/routes/inbound/view/{{route.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.inbound.view.applications\') || $state.is(\'main.voice.routes.inbound.view.application\') || $state.is(\'main.voice.routes.inbound.view.applications.settings\')}">\n							<a data-ng-href="/voice/routes/inbound/view/{{route.id}}/applications">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_ACTIONS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/inbound/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_INBOUND\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts()">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateRoute()" novalidate>\n\n							<!-- START EXTEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DID\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="exten" placeholder="{{\'APPLICATION_DID\' | translate}}" class="form-control" data-ng-model="route.exten" required/>\n								<span data-ng-show="(forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END EXTEN -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="route.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="route.description"/></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/route/inbound/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-call-in"></i>\n				<a href="/voice/routes/inbound/list">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="getContexts()">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-call-in font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTE\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.route.$valid)">\n			    <form name="forms.route" novalidate>\n\n            <!-- START EXTEN -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$invalid}">\n              <label class="control-label">{{\'APPLICATION_DID\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="exten" placeholder="{{\'APPLICATION_DID\' | translate}}" class="form-control" data-ng-model="item.exten" required/>\n              <span data-ng-show="(forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END EXTEN -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/route/internal/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-reload"></i>\n					<a href="/voice/routes/internal/list">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-users font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="routes.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/routes/internal/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getRoutes([\'context\', \'exten\', \'app\', \'appdata\', \'description\'])" csv-header="[\'Context\', \'Exten\', \'App\', \'Appdata\', \'Description\']" field-separator=";" filename="internalRoutes.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedRoutes" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.routesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="routeByPage in routesByPage | filter: $select.search">\n													<div ng-bind-html="routeByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(checked)" checklist-model checklist-value="id"></th>\n                <th st-sort="exten">{{ \'APPLICATION_DID\' | translate }}</th>\n								<th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="route in displayedRoutes"  class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="routes.checked" checklist-value="route.id"></td>\n								<td>{{route.exten}}</td>\n								<td>{{route.context}}</td>\n					      <td>{{route.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/internal/view/{{route.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(route.exten,route.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedRoutes.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_ROUTES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n                <td>\n                  <div class="input-icon right">\n                    <i class="fa fa-search"></i>\n                    <input st-search="exten" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DID\' | translate | lowercase}}" class="form-control" type="search"/>\n                  </div>\n                </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.routesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/internal/view/view.application.html",'\n<div class="row" data-ng-init="initApplication(); getIntervals();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_NEW_APPLICATION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<div class="profile-usertitle-name">\n						{{(main.app | capitalize) || \'Application\'}}\n					</div>\n	        <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.settings.$valid)">\n							<form name="forms.settings" novalidate>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n									<!-- START APP -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="main.app" name="app" theme="bootstrap" required>\n					            <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n					            <ui-select-choices repeat="app.value as app in $application.applications| filter: $select.search">\n					              <div ng-bind-html="app.name | highlight: $select.search"></div>\n					            </ui-select-choices>\n					          </ui-select>\n										<span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END APP -->\n\n									<div id="Queue" class="app-settings" ng-slide-down="main.app == \'Queue\'" lazy-render duration="1">\n										<!-- START QUEUE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n											<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.queue" name="queue" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="queue.name as queue in items | filter: $select.search">\n													<div ng-bind-html="queue.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END QUEUE -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n											<ui-select multiple data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($item.name)}}</ui-select-match>\n												<ui-select-choices repeat="queueOpt.value as queueOpt in $application.queueOptions | filter: $select.search">\n													{{$translate.instant(queueOpt.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n\n										<!-- START URL -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END URL -->\n\n										<!-- START AUDIOFILE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n											<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}</label>\n											<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n												<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items2 | filter: $select.search">\n													<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END AUDIOFILE -->\n\n										<!-- START TIMEOUT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n											<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n											<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END TIMEOUT -->\n\n									</div>\n									<div id="Playback" class="app-settings" ng-slide-down="main.app == \'Playback\'" lazy-render duration="1">\n										<!-- START AUDIOFILE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n											<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n												<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items | filter: $select.search">\n													<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END AUDIOFILE -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n											<ui-select data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n												<ui-select-choices repeat="audioOpt.value as audioOpt in $application.audioOptions | filter: $select.search">\n													{{$translate.instant(audioOpt.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n									</div>\n									<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n										<!-- START INTERFACE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}/{{ \'APPLICATION_IDENTIFIER\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="interface" placeholder="SIP/0000" class="form-control" data-ng-model="application.interface" required>\n											<span data-ng-show="(forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid && forms.settings.interface.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END INTERFACE -->\n\n										<!-- START TIMEOUT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n											<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n											<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END TIMEOUT -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_OPTIONS\' | translate }}</label>\n											<input type="text" name="app_options" placeholder="" class="form-control" data-ng-model="application.app_options">\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n\n										<!-- START URL -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END URL -->\n									</div>\n									<div id="AGI" class="app-settings" ng-slide-down="main.app == \'AGI\'" lazy-render duration="1">\n										<!-- START PROJECT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$invalid}">\n											<label class="control-label">{{\'APPLICATION_PROJECT\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.project" name="project" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="project.name as project in items | filter: $select.search">\n													<div ng-bind-html="project.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END PROJECT -->\n\n										<!-- START URL -->\n										<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<div class="input-group">\n												<input type="text" name="url" placeholder="agi://127.0.0.1/square" class="form-control" data-ng-model="application.url" data-ng-disabled="!application.urlEnabled" data-ng-required="application.urlEnabled" rpattern="/^agi:\\/\\/(?:[0-9]{1,3}\\.){3}[0-9]{1,3}\\/square$/">\n												<span class="input-group-addon">\n													<input type="checkbox" data-ng-model="application.urlEnabled">\n												</span>\n											</div>\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.pattern" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n											</span>\n										</div> -->\n										<!-- END URL -->\n\n									</div>\n									<div id="Goto" class="app-settings" ng-slide-down="main.app == \'Goto\'" lazy-render duration="1">\n										<!-- START CONTEXT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$invalid}">\n											<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.alt_context" name="context" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="context.name as context in items | filter: $select.search">\n													<div ng-bind-html="context.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END CONTEXT -->\n\n										<!-- START EXTENSION -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_EXTENSION\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="extension" placeholder="" class="form-control" data-ng-model="application.alt_extension" required>\n											<span data-ng-show="(forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid && forms.settings.extension.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END EXTENSION -->\n\n										<!-- START PRIORITY -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_PRIORITY\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="number" name="priority" placeholder="" class="form-control" data-ng-model="application.alt_priority" required>\n											<span data-ng-show="(forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END PRIORITY -->\n									</div>\n									<div id="Hangup" class="app-settings" ng-slide-down="main.app == \'Hangup\'" lazy-render duration="1">\n										<!-- START HANGUPCAUSE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$invalid}">\n											<label class="control-label">{{\'APPLICATION_HANGUP_CAUSE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.causecode" theme="bootstrap" name="hangupCause" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n												<ui-select-choices repeat="hangupCause.value as hangupCause in $application.hangupCauses | filter: $select.search">\n													{{$translate.instant(hangupCause.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END HANGUPCAUSE -->\n									</div>\n									<div id="Set" class="app-settings" ng-slide-down="main.app == \'Set\'" lazy-render duration="1">\n										<!-- START VARIABLE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_VARIABLE\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="variable" placeholder="" class="form-control" data-ng-model="application.variable" required>\n											<span data-ng-show="(forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid && forms.settings.variable.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VARIABLE -->\n\n										<!-- START VARVALUE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_VALUE\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="varvalue" placeholder="" class="form-control" data-ng-model="application.value" required>\n											<span data-ng-show="(forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid && forms.settings.varvalue.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VARVALUE -->\n									</div>\n									<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n										<!-- START CUSTOMAPP -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n											<span data-ng-show="(forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid && forms.settings.customApp.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END CUSTOMAPP -->\n\n										<!-- START APPDATA -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n											<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n											<span data-ng-show="(forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid && forms.settings.appdata.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END APPDATA -->\n									</div>\n									<div id="Voicemail" class="app-settings" ng-slide-down="main.app == \'Voicemail\'" lazy-render duration="1">\n										<!-- START VOICEMAIL -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="voicemail" placeholder="{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}" class="form-control" data-ng-model="application.mailbox" required>\n											<span data-ng-show="(forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid && forms.settings.voicemail.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VOICEMAIL -->\n									</div>\n									<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								</form>\n								</wz-step>\n									<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n										<form name="forms.interval" novalidate>\n											<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n											<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n											<!-- START INTERVAL_TYPE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n										<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n												{{$translate.instant(intType.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END INTERVAL_TYPE -->\n									<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n											<!-- START TIME -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n												<div class="input-group input-large">\n													<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n													<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n													<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n													<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n												</div>\n											</div>\n											<!-- END TIME -->\n\n											<!-- START WEEKDAY -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n															{{$translate.instant(weekDay.name)}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n															{{$translate.instant(weekDay.name)}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END WEEKDAY -->\n\n											<!-- START MONTHDAY -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n														<ui-select-match>{{$select.selected}}</ui-select-match>\n														<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n															{{monthDay}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n														<ui-select-match>{{$select.selected}}</ui-select-match>\n														<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n															{{monthDay}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END MONTHDAY -->\n\n											<!-- START MONTH -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n															{{$translate.instant(month.name)}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n															{{$translate.instant(month.name)}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END MONTH -->\n							</div>\n\n							<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n								<!-- START INTERVALS -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n											{{$translate.instant(interval.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVALS -->\n\n							</div>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n						</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/voice/route/internal/view/view.applicationSettings.html",'\n<div class="row" data-ng-init="initApplication();getIntervals();getApplication();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_APPLICATION_SETTINGS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="updateItem()">\n					<div class="profile-usertitle-name">\n						{{(main.app | capitalize) || \'Application\'}}\n					</div>\n	        <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.settings.$valid)">\n							<form name="forms.settings" novalidate>\n\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								<div id="Queue" class="app-settings" ng-slide-down="main.app == \'Queue\'" lazy-render duration="1">\n									<!-- START QUEUE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n										<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.queue" name="queue" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="queue.name as queue in items | filter: $select.search">\n												<div ng-bind-html="queue.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END QUEUE -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n										<ui-select multiple data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($item.name)}}</ui-select-match>\n											<ui-select-choices repeat="queueOpt.value as queueOpt in $application.queueOptions | filter: $select.search">\n												{{$translate.instant(queueOpt.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n\n									<!-- START URL -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END URL -->\n\n									<!-- START AUDIOFILE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n										<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}</label>\n										<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n											<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items2 | filter: $select.search">\n												<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END AUDIOFILE -->\n\n									<!-- START TIMEOUT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n										<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n										<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END TIMEOUT -->\n\n								</div>\n								<div id="Playback" class="app-settings" ng-slide-down="main.app == \'Playback\'" lazy-render duration="1">\n									<!-- START AUDIOFILE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n										<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n											<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items | filter: $select.search">\n												<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END AUDIOFILE -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n										<ui-select data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="audioOpt.value as audioOpt in $application.audioOptions | filter: $select.search">\n												{{$translate.instant(audioOpt.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n								</div>\n								<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n									<!-- START INTERFACE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}/{{ \'APPLICATION_IDENTIFIER\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="interface" placeholder="SIP/0000" class="form-control" data-ng-model="application.interface" required>\n										<span data-ng-show="(forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid && forms.settings.interface.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END INTERFACE -->\n\n									<!-- START TIMEOUT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n										<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n										<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END TIMEOUT -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_OPTIONS\' | translate }}</label>\n										<input type="text" name="app_options" placeholder="" class="form-control" data-ng-model="application.app_options">\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n\n									<!-- START URL -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END URL -->\n								</div>\n								<div id="AGI" class="app-settings" ng-slide-down="main.app == \'AGI\'" lazy-render duration="1">\n									<!-- START PROJECT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$invalid}">\n										<label class="control-label">{{\'APPLICATION_PROJECT\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.project" name="project" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="project.name as project in items | filter: $select.search">\n												<div ng-bind-html="project.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END PROJECT -->\n\n									<!-- START URL -->\n									<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<div class="input-group">\n											<input type="text" name="url" placeholder="agi://127.0.0.1/square" class="form-control" data-ng-model="application.url" data-ng-disabled="!application.urlEnabled" data-ng-required="application.urlEnabled" rpattern="/^agi:\\/\\/(?:[0-9]{1,3}\\.){3}[0-9]{1,3}\\/square$/">\n											<span class="input-group-addon">\n												<input type="checkbox" data-ng-model="application.urlEnabled">\n											</span>\n										</div>\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.pattern" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n										</span>\n									</div> -->\n									<!-- END URL -->\n\n								</div>\n								<div id="Goto" class="app-settings" ng-slide-down="main.app == \'Goto\'" lazy-render duration="1">\n									<!-- START CONTEXT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$invalid}">\n										<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.alt_context" name="context" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="context.name as context in items | filter: $select.search">\n												<div ng-bind-html="context.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END CONTEXT -->\n\n									<!-- START EXTENSION -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_EXTENSION\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="extension" placeholder="" class="form-control" data-ng-model="application.alt_extension" required>\n										<span data-ng-show="(forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid && forms.settings.extension.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END EXTENSION -->\n\n									<!-- START PRIORITY -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_PRIORITY\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="number" name="priority" placeholder="" class="form-control" data-ng-model="application.alt_priority" required>\n										<span data-ng-show="(forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END PRIORITY -->\n								</div>\n								<div id="Hangup" class="app-settings" ng-slide-down="main.app == \'Hangup\'" lazy-render duration="1">\n									<!-- START HANGUPCAUSE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$invalid}">\n										<label class="control-label">{{\'APPLICATION_HANGUP_CAUSE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.causecode" theme="bootstrap" name="hangupCause" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="hangupCause.value as hangupCause in $application.hangupCauses | filter: $select.search">\n												{{$translate.instant(hangupCause.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END HANGUPCAUSE -->\n								</div>\n								<div id="Set" class="app-settings" ng-slide-down="main.app == \'Set\'" lazy-render duration="1">\n									<!-- START VARIABLE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_VARIABLE\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="variable" placeholder="" class="form-control" data-ng-model="application.variable" required>\n										<span data-ng-show="(forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid && forms.settings.variable.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VARIABLE -->\n\n									<!-- START VARVALUE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_VALUE\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="varvalue" placeholder="" class="form-control" data-ng-model="application.value" required>\n										<span data-ng-show="(forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid && forms.settings.varvalue.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VARVALUE -->\n								</div>\n								<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n									<!-- START CUSTOMAPP -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n										<span data-ng-show="(forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid && forms.settings.customApp.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END CUSTOMAPP -->\n\n									<!-- START APPDATA -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n										<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n										<span data-ng-show="(forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid && forms.settings.appdata.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END APPDATA -->\n								</div>\n								<div id="Voicemail" class="app-settings" ng-slide-down="main.app == \'Voicemail\'" lazy-render duration="1">\n									<!-- START VOICEMAIL -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="voicemail" placeholder="{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}" class="form-control" data-ng-model="application.mailbox" required>\n										<span data-ng-show="(forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid && forms.settings.voicemail.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VOICEMAIL -->\n								</div>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n							</wz-step>\n								<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n									<form name="forms.interval" novalidate>\n										<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n										<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								<!-- START INTERVAL_TYPE -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n											{{$translate.instant(intType.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVAL_TYPE -->\n								<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n										<!-- START TIME -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n											<div class="input-group input-large">\n												<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n												<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n											</div>\n										</div>\n										<!-- END TIME -->\n\n										<!-- START WEEKDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END WEEKDAY -->\n\n										<!-- START MONTHDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTHDAY -->\n\n										<!-- START MONTH -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTH -->\n						</div>\n\n						<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n							<!-- START INTERVALS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n									<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n										{{$translate.instant(interval.name)}}\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERVALS -->\n\n						</div>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/voice/route/internal/view/view.applications.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getRouteApplications()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/voice/routes/internal/view/{{route.id}}/application" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_APPLICATION\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th>{{ \'APPLICATION_APPLICATION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ARGUMENTS\' | translate }}</th>\n						    <th>{{ \'APPLICATION_TIME\' | translate }}</th>\n								<th></th>\n						  </tr>\n					  </thead>\n					  <tbody ui-sortable="sortableOptions" data-ng-model="routeApplications">\n					    <tr data-ng-repeat="application in routeApplications | orderBy:\'priority\'">\n								<td>{{application.app}}</td>\n								<td>{{application.appdata}}</td>\n								<td>{{application.interval}}</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/inbound/view/{{route.id}}/applications/settings/{{application.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app+\' application\',application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="routeApplications.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n</div>\n'),a.put("app/voice/route/internal/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getRoute()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-reload"></i>\n					<a href="/voice/routes/internal/list">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n					<i data-ng-show="route" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="route">\n					<a href="#">{{route.exten}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/internalroute.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{route.exten}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.internal.view.settings\')}">\n							<a data-ng-href="/voice/routes/internal/view/{{route.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.internal.view.applications\') || $state.is(\'main.voice.routes.internal.view.application\') || $state.is(\'main.voice.routes.internal.view.applications.settings\')}">\n							<a data-ng-href="/voice/routes/internal/view/{{route.id}}/applications">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_ACTIONS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/internal/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_INTERNAL\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts()">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateRoute()" novalidate>\n\n							<!-- START EXTEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DID\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="exten" placeholder="{{\'APPLICATION_DID\' | translate}}" class="form-control" data-ng-model="route.exten" required/>\n								<span data-ng-show="(forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END EXTEN -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="route.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="route.description"/></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/route/internal/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-reload"></i>\n				<a href="/voice/routes/internal/list">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="getContexts()">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-reload font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTE\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.route.$valid)">\n			    <form name="forms.route" novalidate>\n\n            <!-- START EXTEN -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$invalid}">\n              <label class="control-label">{{\'APPLICATION_DID\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="exten" placeholder="{{\'APPLICATION_DID\' | translate}}" class="form-control" data-ng-model="item.exten" required/>\n              <span data-ng-show="(forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END EXTEN -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/route/outbound/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-call-out"></i>\n					<a href="/voice/routes/outbound/list">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-users font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="routes.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<!-- <li>\n								<a href="#">\n								<i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n							</li> -->\n							<li>\n								<a href="/voice/routes/outbound/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n							<!-- <li>\n								<a href="#">\n								<i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n							</li> -->\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getRoutes([\'context\', \'exten\', \'app\', \'appdata\', \'description\'])" csv-header="[\'Context\', \'Exten\', \'App\', \'Appdata\', \'Description\']" field-separator=";" filename="routes_outobund.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedRoutes" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.routesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="routeByPage in routesByPage | filter: $select.search">\n													<div ng-bind-html="routeByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(checked)" checklist-model checklist-value="id"></th>\n                <th st-sort="exten">{{ \'APPLICATION_PATTERN\' | translate }}</th>\n								<th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="route in displayedRoutes"  class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="routes.checked" checklist-value="route.id"></td>\n								<td>{{route.exten}}</td>\n								<td>{{route.context}}</td>\n					      <td>{{route.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/outbound/view/{{route.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(route.name,route.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedRoutes.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_ROUTES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="id" class="form-control" type="search"/>\n									</div>\n						    </td>\n                <td>\n                  <div class="input-icon right">\n                    <i class="fa fa-search"></i>\n                    <input st-search="exten" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_PATTERN\' | translate | lowercase}}" class="form-control" type="search"/>\n                  </div>\n                </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.routesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/outbound/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getRoute()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-call-out"></i>\n					<a href="/voice/routes/outbound/list">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n					<i data-ng-show="route" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="route">\n					<a href="#">{{route.exten}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/outboundroute.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{route.exten}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.outbound.view.settings\')}">\n							<a data-ng-href="/voice/routes/outbound/view/{{route.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.outbound.view.routes\') || $state.is(\'main.voice.routes.outbound.view.route\') || $state.is(\'main.voice.routes.outbound.view.routes.settings\')}">\n							<a data-ng-href="/voice/routes/outbound/view/{{route.id}}/routes">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_ACTIONS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/outbound/view/view.route.html",'<div class="row" data-ng-init="initApplication();getIntervals();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_NEW_ROUTE\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="profile-usertitle-name">\n					{{(main.app | capitalize) || \'Application\'}}\n				</div>\n				<wizard on-finish="createItem()">\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(forms.info.$valid)">\n							<form name="forms.info" novalidate>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								<!-- START APP -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid}">\n									<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="main.app" name="app" theme="bootstrap" required>\n										<ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="app.value as app in applications | filter: $select.search">\n											<div ng-bind-html="app.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid && forms.info.app.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END APP -->\n								<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n								<!-- START TRUNK -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$invalid}">\n									<label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.TrunkId" name="trunk" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="trunk.id as trunk in items | filter: $select.search">\n											<div ng-bind-html="trunk.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span class="help-block">\n										{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n									</span>\n									<span data-ng-show="(forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END TRUNK -->\n\n								<!-- START CONTEXT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$invalid}">\n									<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.context" name="context" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="context.name as context in items2 | filter: $select.search">\n											<div ng-bind-html="context.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span class="help-block">\n										{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n									</span>\n									<span data-ng-show="(forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END CONTEXT -->\n\n								<!-- START CALLERID -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid}">\n									<label class="control-label">{{ \'APPLICATION_CALLERID\' | translate }}</label>\n									<input type="text" name="callerID" placeholder="{{ \'APPLICATION_CALLERID\' | translate }}" class="form-control" data-ng-model="application.callerID">\n									<span data-ng-show="(forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END CALLERID -->\n\n									<!-- START CUTDIGITS -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_CUTDIGITS\' | translate}}</label>\n									<input type="number" class="form-control" name="cutdigits" data-ng-model="application.cutdigits">\n									<span class="help-block">\n										{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n									</span>\n								</div>\n								<!-- END CUTDIGITS -->\n							</div>\n							<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n								<!-- START CUSTOMAPP -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid}">\n									<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n									<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n									<span data-ng-show="(forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid && forms.info.customApp.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END CUSTOMAPP -->\n\n								<!-- START APPDATA -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n									<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n									<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n									<span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END APPDATA -->\n							</div>\n							<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n							</wz-step>\n								<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n									<form name="forms.interval" novalidate>\n										<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n										<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n									<!-- START INTERVAL_TYPE -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n											{{$translate.instant(intType.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVAL_TYPE -->\n								<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n										<!-- START TIME -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n											<div class="input-group input-large">\n												<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n												<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n											</div>\n										</div>\n										<!-- END TIME -->\n\n										<!-- START WEEKDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END WEEKDAY -->\n\n										<!-- START MONTHDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTHDAY -->\n\n										<!-- START MONTH -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTH -->\n						</div>\n\n						<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n							<!-- START INTERVALS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n									<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n										{{$translate.instant(interval.name)}}\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERVALS -->\n\n						</div>\n\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/voice/route/outbound/view/view.routeSettings.html",'\n<div class="row" data-ng-init="initApplication();getApplication();getIntervals();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_APPLICATION_SETTINGS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="updateItem()">\n					<div class="profile-usertitle-name">\n						{{(main.app | capitalize) || \'Application\'}}\n					</div>\n	        <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.info.$valid)">\n						<form name="forms.info" novalidate>\n							<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n							<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n\n							<!-- START TRUNK -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.TrunkId" name="trunk" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="trunk.id as trunk in items | filter: $select.search">\n										<div ng-bind-html="trunk.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TRUNK -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in items2 | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<!-- START CALLERID -->\n							<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_CALLERID\' | translate }}</label>\n								<input type="text" name="callerID" placeholder="{{ \'APPLICATION_CALLERID\' | translate }}" class="form-control" data-ng-model="application.callerID">\n								<span data-ng-show="(forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CALLERID -->\n\n								<!-- START CUTDIGITS -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_CUTDIGITS\' | translate}}</label>\n								<input type="number" class="form-control" name="cutdigits" data-ng-model="application.cutdigits">\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n							</div>\n							<!-- END CUTDIGITS -->\n						</div>\n						<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n							<!-- START CUSTOMAPP -->\n							<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n								<span data-ng-show="(forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid && forms.info.customApp.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CUSTOMAPP -->\n\n							<!-- START APPDATA -->\n							<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n								<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n								<span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END APPDATA -->\n						</div>\n						<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</form>\n					</wz-step>\n						<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n							<form name="forms.interval" novalidate>\n								<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n						<!-- START INTERVAL_TYPE -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n							<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n								<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n									{{$translate.instant(intType.name)}}\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END INTERVAL_TYPE -->\n						<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n								<!-- START TIME -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n									<div class="input-group input-large">\n										<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n										<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n										<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n										<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n									</div>\n								</div>\n								<!-- END TIME -->\n\n								<!-- START WEEKDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n											<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{$translate.instant(weekDay.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n											<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{$translate.instant(weekDay.name)}}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END WEEKDAY -->\n\n								<!-- START MONTHDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTHDAY -->\n\n								<!-- START MONTH -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n											<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{$translate.instant(month.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n											<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{$translate.instant(month.name)}}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTH -->\n							</div>\n\n							<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n								<!-- START INTERVALS -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n											{{$translate.instant(interval.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVALS -->\n\n							</div>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/outbound/view/view.routes.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getRouteApplications()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/voice/routes/outbound/view/{{route.id}}/route" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n								<th>{{ \'APPLICATION_APPLICATION\' | translate }}</th>\n								<th>{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n								<th>{{ \'APPLICATION_ARGUMENTS\' | translate }}</th>\n						    <th>{{ \'APPLICATION_TIME\' | translate }}</th>\n								<th></th>\n						  </tr>\n					  </thead>\n					  <tbody ui-sortable="sortableOptions" data-ng-model="routeApplications">\n					    <tr data-ng-repeat="application in routeApplications | orderBy:\'priority\'">\n								<td>{{application.app}}</td>\n								<td>{{application.context}}</td>\n								<td>{{application.appdata}}</td>\n								<td>{{application.interval}}</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/outbound/view/{{route.id}}/routes/settings/{{application.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(\'Route\',application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="routeApplications.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_ROUTES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n</div>\n'),a.put("app/voice/route/outbound/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_OUTBOUND\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts()">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateRoute()" novalidate>\n\n							<!-- START EXTEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PATTERN\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="exten" placeholder="{{\'APPLICATION_PATTERN\' | translate}}" class="form-control" data-ng-model="route.exten" required/>\n								<span data-ng-show="(forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END EXTEN -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="route.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="route.description"/></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/route/outbound/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-call-out"></i>\n				<a href="/voice/routes/outbound/list">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="getContexts()">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-call-out font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTE\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.route.$valid)">\n			    <form name="forms.route" novalidate>\n\n            <!-- START EXTEN -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$invalid}">\n              <label class="control-label">{{\'APPLICATION_PATTERN\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="exten" placeholder="{{\'APPLICATION_PATTERN\' | translate}}" class="form-control" data-ng-model="item.exten" required/>\n              <span data-ng-show="(forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END EXTEN -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/voicemail/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope-letter"></i>\n					<a href="/voice/voicemails/list">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-envelope-letter font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="voicemails.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_VOICEMAIL\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/voicemails/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getVoicemails([\'mailbox\', \'fullname\', \'email\'])" csv-header="[\'Mailbox\', \'Fullname\', \'Email\']" field-separator=";" filename="voicemails.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedVoicemails" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.voicemailsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="voicemailByPage in voicemailsByPage | filter: $select.search">\n													<div ng-bind-html="voicemailByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(voicemail, checked)" checklist-model checklist-value="uniqueid"></th>\n						    <th st-sort="mailbox">{{ \'APPLICATION_MAILBOX\' | translate }}</th>\n						    <th st-sort="fullname">{{ \'APPLICATION_FULLNAME\' | translate }}</th>\n						    <th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="voicemail in displayedVoicemails" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="voicemails.checked" checklist-value="voicemail.uniqueid"></td>\n								<td>{{voicemail.mailbox}}</td>\n                <td>{{voicemail.fullname}}</td>\n					      <td>{{voicemail.email}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/voicemails/view/{{voicemail.uniqueid}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(voicemail.mailbox,voicemail.uniqueid)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedVoicemails.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_VOICEMAILS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="mailbox" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_MAILBOX\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="fullname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FULLNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.voicemailsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/voicemail/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getVoicemail()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope-letter"></i>\n					<a href="/voice/voicemails/list">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a>\n					<i data-ng-show="voicemail" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="voicemail">\n					<a href="#">{{voicemail.mailbox}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/voicemail.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{voicemail.mailbox}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.voicemails.view.settings\')}">\n							<a data-ng-href="/voice/voicemails/view/{{voicemail.uniqueid}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n            <li data-ng-class="{active: $state.is(\'main.voice.voicemails.view.messages\')}">\n              <a data-ng-href="/voice/voicemails/view/{{voicemail.uniqueid}}/messages">\n              <i class="icon-speech"></i>\n              {{ \'APPLICATION_MESSAGES\' | translate}} </a>\n            </li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/voice/voicemail/view/view.messages.html",'<div class="row" data-ng-init="getMessages()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_MESSAGES\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th>{{ \'APPLICATION_CALLERID\' | translate }}</th>\n						    <th>{{ \'APPLICATION_DATE\' | translate }}</th>\n								<th>{{ \'APPLICATION_DURATION\' | translate }}</th>\n								<th>{{ \'APPLICATION_RECORDING\' | translate }}</th>\n								<th width="20%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody data-ng-model="voicemailMessages">\n					    <tr data-ng-repeat="message in voicemailMessages">\n								<td>{{message.callerid}}</td>\n								<td>{{returnMessageDate(message.stamp)}}</td>\n								<td>{{returnDuration(message.duration) | date: \'mm:ss\'}}</td>\n								<td>\n									<audio controls ng-src="{{encodeRecording(message.recording)}}" preload="none">\n			            Your browser does not support the audio tag.\n			          </audio>\n							</td>\n					      <td>\n									<a class="btn default btn-xs green-stripe" href="/api/voice/voicemails/messages/{{message.id}}/download" target="_self">\n										{{ \'APPLICATION_DOWNLOAD\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(\'message\',message.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="voicemailMessages.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No messages available</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/voicemail/view/view.settings.html",'<div class="row" data-ng-init="getContexts()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_VOICEMAIL\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n					<!-- <li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_ADVANCED\' | translate}}</a>\n					</li> -->\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceVoicemail()" novalidate>\n\n							<!-- START MAILBOX -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.mailbox.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="voicemail.mailbox" required/>\n								<span data-ng-show="forms.general.$submitted && forms.general.mailbox.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MAILBOX -->\n\n							<!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.password.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}</label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="voicemail.password" />\n								<span data-ng-show="forms.general.$submitted && forms.general.password.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n							<!-- START CONFIRM PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rpassword.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}</label>\n								<input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="voicemail.rpassword" nx-equal="voicemail.password"/>\n								<span data-ng-show="forms.general.$submitted && (forms.general.rpassword.$invalid || forms.general.rpassword.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONFIRM PASSWORD -->\n\n							<!-- START FULLNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.fullname.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="voicemail.fullname" required/>\n								<span data-ng-show="forms.general.$submitted && forms.general.fullname.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FULLNAME -->\n\n							<!-- START EMAIL -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.email.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="voicemail.email" required/>\n								<span data-ng-show="forms.general.$submitted && forms.general.host.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END EMAIL -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="voicemail.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n					<!-- ADVANCED TAB -->\n					<!-- <div class="tab-pane" id="tab_1_2">\n						<form name="forms.advanced" data-ng-submit="updateVoiceVoicemail()" novalidate>\n\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div> -->\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/voicemail/wizard/wizard.html",'<div class="col-md-12" data-ng-init="initWizard();getContexts();">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-envelope-letter"></i>\n				<a href="/voice/voicemails/list">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-envelope-letter font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_VOICEMAIL\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n			    <form name="forms.general" novalidate>\n\n			      <!-- START MAILBOX -->\n			      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.mailbox.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="item.mailbox" required/>\n							<span data-ng-show="forms.general.$submitted && forms.general.mailbox.$invalid" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END MAILBOX -->\n\n						<!-- START PASSWORD -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.password.$invalid}">\n							<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n							<span data-ng-show="forms.general.$submitted && forms.general.password.$invalid" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END PASSWORD -->\n\n						<!-- START CONFIRM PASSWORD -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rpassword.$invalid}">\n							<label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n							<span data-ng-show="forms.general.$submitted && (forms.general.rpassword.$invalid || forms.general.rpassword.$invalid)" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n							</span>\n						</div>\n						<!-- END CONFIRM PASSWORD -->\n\n            <!-- START FULLNAME -->\n            <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.fullname.$invalid}">\n              <label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n              <span data-ng-show="forms.general.$submitted && forms.general.fullname.$invalid" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END FULLNAME -->\n\n            <!-- START EMAIL -->\n            <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.email.$invalid}">\n              <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="item.email" required/>\n              <span data-ng-show="forms.general.$submitted && forms.general.host.$invalid" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END EMAIL -->\n\n            <!-- START CONTEXT -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n              <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <ui-select data-ng-model="item.context" name="context" theme="bootstrap" required>\n                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                <ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n                  <div ng-bind-html="context.name | highlight: $select.search"></div>\n                </ui-select-choices>\n              </ui-select>\n              <span class="help-block">\n                {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n              </span>\n              <span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END CONTEXT -->\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</form>\n				</wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/yourdashboard/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_DASHBOARD\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.dashboard" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.dashboard.name.$touched || forms.dashboard.$submitted) && forms.dashboard.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.dashboard.name.$touched || forms.dashboard.$submitted) && forms.dashboard.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.dashboard.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/yourdashboard/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-screen-desktop"></i>\n					<a href="/yourdashboards/list">{{ \'APPLICATION_YOUR_DASHBOARDS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_YOUR_DASHBOARDS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="dashboards.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<button class="btn green-jungle " ng-click="create()">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_DASHBOARD\' | translate }}\n						</button>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getDashboards([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="dashboards.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedDashboards" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.dashboardsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="dashboardByPage in dashboardsByPage | filter: $select.search">\n													<div ng-bind-html="dashboardByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(dashboard, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="dashboard in displayedDashboards" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="dashboard.defaultEntry" type="checkbox" checklist-model="dashboards.checked" checklist-value="dashboard.id"></td>\n								<td>{{dashboard.name}}</td>\n					      <td>{{dashboard.description}}</td>\n					      <td>\n									<a class="btn default btn-xs green-stripe" data-ng-href="/yourdashboards/show/{{dashboard.id}}">\n										{{ \'APPLICATION_VIEW\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/yourdashboards/view/{{dashboard.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(dashboard.name,dashboard.id)" data-ng-class="{\'disabled\': dashboard.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedDashboards.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_DASHBOARDS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.dashboardsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/yourdashboard/show/show.html",'<div class="col-md-12" ng-init="getDashboard()">\n  <adf-dashboard\n          name="{{dashboard.name}}"\n          collapsible="{{dashboard.collapsible}}"\n          maximizable="{{dashboard.maximizable}}"\n          enableconfirmdelete="{{dashboard.enableconfirmdelete}}"\n          structure="{{dashboard.structure}}"\n          editable="{{dashboard.editable}}"\n          adf-model="dashboard.model"/>\n</div>\n'),a.put("app/yourdashboard/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getDashboard()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-screen-desktop"></i>\n					<a href="/yourdashboards/list">{{ \'APPLICATION_YOUR_DASHBOARDS\' | translate }}</a>\n					<i data-ng-show="dashboard" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="dashboard">\n					<a href="#">{{dashboard.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/dashboard.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{dashboard.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.yourdashboards.view.settings\')}">\n							<a data-ng-href="/yourdashboards/view/{{dashboard.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/yourdashboard/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_DASHBOARD\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateDashboard()" novalidate>\n\n							<!-- START VISIBLE TO ADMIN -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_VISIBLE_TO_ADMIN\' | translate}}</label><br>\n								<input\n									bs-switch\n									ng-model="dashboard.admin"\n									type="checkbox"\n									switch-active="{{ radioSwitch.isActive }}"\n									switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n									switch-on-color="{{ radioSwitch.onColor }}"\n									switch-off-color="{{ radioSwitch.offColor }}"\n									switch-animate="{{ radioSwitch.animate }}"\n									switch-size="{{ radioSwitch.size }}"\n									switch-label="{{ radioSwitch.label }}"\n									switch-icon="{{ radioSwitch.icon }}"\n									switch-radio-off="{{ radioSwitch.radioOff }}"\n									switch-label-width="{{ radioSwitch.labelWidth }}"\n									switch-handle-width="{{ radioSwitch.handleWidth }}">\n							</div>\n							<!-- END VISIBLE TO ADMIN -->\n\n							<!-- START VISIBLE TO USER -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_VISIBLE_TO_USER\' | translate}}</label><br>\n								<input\n									bs-switch\n									ng-model="dashboard.user"\n									type="checkbox"\n									switch-active="{{ radioSwitch.isActive }}"\n									switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n									switch-on-color="{{ radioSwitch.onColor }}"\n									switch-off-color="{{ radioSwitch.offColor }}"\n									switch-animate="{{ radioSwitch.animate }}"\n									switch-size="{{ radioSwitch.size }}"\n									switch-label="{{ radioSwitch.label }}"\n									switch-icon="{{ radioSwitch.icon }}"\n									switch-radio-off="{{ radioSwitch.radioOff }}"\n									switch-label-width="{{ radioSwitch.labelWidth }}"\n									switch-handle-width="{{ radioSwitch.handleWidth }}">\n							</div>\n							<!-- END VISIBLE TO USER -->\n\n							<!-- START VISIBLE TO AGENT -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_VISIBLE_TO_AGENT\' | translate}}</label><br>\n								<input\n									bs-switch\n									ng-model="dashboard.agent"\n									type="checkbox"\n									switch-active="{{ radioSwitch.isActive }}"\n									switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n									switch-on-color="{{ radioSwitch.onColor }}"\n									switch-off-color="{{ radioSwitch.offColor }}"\n									switch-animate="{{ radioSwitch.animate }}"\n									switch-size="{{ radioSwitch.size }}"\n									switch-label="{{ radioSwitch.label }}"\n									switch-icon="{{ radioSwitch.icon }}"\n									switch-radio-off="{{ radioSwitch.radioOff }}"\n									switch-label-width="{{ radioSwitch.labelWidth }}"\n									switch-handle-width="{{ radioSwitch.handleWidth }}">\n							</div>\n							<!-- END VISIBLE TO AGENT -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="dashboard.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/zendesk/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-handbag"></i>\n					<a href="/zendesk/list">{{ \'APPLICATION_ZENDESK\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-handbag font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ZENDESK\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="accounts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle" href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/zendesk/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'authType\',\'token\',\'password\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Authentication Type\', \'Token\', \'Password\']" field-separator=";" filename="zendesk_accounts.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedZdAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n													<div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n								<th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n								<th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="account in displayedZdAccounts" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n					      <td>{{account.name}}</td>\n					      <td>{{account.username}}</td>\n								<td>{{account.remoteUri}}</td>\n								<td>{{account.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/zendesk/view/{{account.id}}/account">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n									<a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n										{{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedZdAccounts.length">\n								<td colspan="7" style="text-align:center;">\n									<i>No account available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="7" class="text-center">\n									<div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n					</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/zendesk/view/view.account.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n								<span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n								<span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START AUTH TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n								<label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n								<ui-select data-ng-model="account.authType" name="authType" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="type in [\'password\', \'token\'] | filter: $select.search">\n										<div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="account.authType == \'password\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n								<span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n              <!-- START TOKEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="account.authType == \'token\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="token" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.token" required/>\n								<span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TOKEN -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/zendesk/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createConfiguration()">\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n							<form name="formsConfiguration.info" novalidate>\n								<!-- START NAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n									<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n									<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n									<span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END NAME -->\n								<!-- START DESCRIPTION -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n									<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n								</div>\n								<!-- END DESCRIPTION -->\n\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/zendesk/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n					</li>\n          <li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n					</li>\n          <li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- SUBJECT TAB -->\n					<div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n	            <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n	              <div class="col-md-3">\n	                <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n	                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n	                <div class="form-group">\n	                  <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n	                </div>\n	              </div>\n	              <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n	                <div class="form-group">\n	                  <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n					<div class="tab-pane ui-padding" id="tab_1_2">\n						<div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n							<div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n								<!-- <pre>\n									{{descriptionItem|json}}\n								</pre> -->\n	              <div class="col-md-2">\n	                <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n	                  <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n	                <div class="form-group">\n	                  <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n	                </div>\n	              </div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n									<input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n								</div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n									<ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n	                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n								</div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n									<input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n								</div>\n	              <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n	                <div class="form-group">\n	                  <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n					<div class="tab-pane ui-padding" id="tab_1_3">\n						<div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n	            <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n	              <div class="col-md-3">\n	                <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n	                  <ui-select-choices repeat="item.id as item in accountFields | filter: $select.search">\n	                    <div ng-bind-html="item.title | highlight: $select.search"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n	                <div class="form-group">\n										<ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n		                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n		                  <ui-select-choices repeat="item.value as item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n		                    <div ng-bind-html="item.name | highlight: $select.search"></div>\n		                  </ui-select-choices>\n		                </ui-select>\n	                </div>\n	              </div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n									<div class="form-group">\n										<ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n		                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n		                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n		                    <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n		                  </ui-select-choices>\n		                </ui-select>\n									</div>\n								</div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n	                <div class="form-group">\n										<input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n	                </div>\n	              </div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n	                <div class="form-group">\n										<ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END FIELDS TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/zendesk/view/view.configurations.html",'<div ui-view class="profile-content">\n	<div class="row" data-ng-init="getConfigurations()">\n		<div class="col-md-12">\n			<div class="portlet light">\n				<div class="portlet-title  tabbable-line">\n					<div class="caption caption-md">\n						<i class="icon-globe theme-font hide"></i>\n						<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n					</div>\n					<div class="actions">\n						<div class="btn-group">\n							<a class="btn green-jungle " href="/zendesk/view/{{account.id}}/configuration" data-toggle="dropdown">\n								<i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n							</a>\n						</div>\n					</div>\n				</div>\n				<div class="portlet-body">\n					<!-- START TABLE -->\n					<table class="table table-striped table-bordered table-hover">\n						  <thead>\n							  <tr>\n							    <th>{{\'APPLICATION_NAME\' | translate}}</th>\n									<th>{{\'APPLICATION_DESCRIPTION\' | translate}}</th>\n									<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n							  </tr>\n						  </thead>\n							<tbody>\n						    <tr data-ng-repeat="configuration in configurations">\n									<td>{{configuration.name}}</td>\n									<td>{{configuration.description}}</td>\n						      <td>\n										<a class="btn default btn-xs blue-stripe" data-ng-href="/zendesk/view/{{account.id}}/configurations/settings/{{configuration.id}}">\n											{{ \'APPLICATION_SETTINGS\' | translate}}\n						        </a>\n						        <a class="btn default btn-xs red-stripe" data-ng-click="deleteConfiguration(configuration.name,configuration.id)">\n											{{ \'APPLICATION_DELETE\' | translate }}\n						        </a>\n						      </td>\n						    </tr>\n								<tr data-ng-hide="configurations.length">\n									<td colspan="5" style="text-align:center;">\n										<i>No configuration available</i>\n									</td>\n								</tr>\n						  </tbody>\n					</table>\n					<!-- END TABLE -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/zendesk/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n          <i class="icon-handbag"></i>\n          <a href="/zendesk/list">{{ \'APPLICATION_ZENDESK\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{account.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img src="assets/images/media/zendesk.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{account.name}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{account.remoteUri}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.zendesk.view.account\')}">\n							<a ng-href="/zendesk/view/{{account.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.includes(\'main.zendesk.view.configurations\') || $state.is(\'main.zendesk.view.configuration\')}">\n							<a ng-href="/zendesk/view/{{account.id}}/configurations">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/zendesk/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-handbag"></i>\n						<a href="/zendesk/list">{{ \'APPLICATION_ZENDESK\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n						<form name="forms.formSetting" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.username" required ng-remote-validate="/api/zendesk/accounts/validate/username"/>\n								<span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formSetting.username.$touched || forms.formSetting.$submitted) && forms.formSetting.username.$error.ngRemoteValidate" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n				        </span>\n							</div>\n							<!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required ng-remote-validate="/api/zendesk/accounts/validate/remoteUri"/>\n								<span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formSetting.remoteUri.$touched || forms.formSetting.$submitted) && forms.formSetting.remoteUri.$error.ngRemoteValidate" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n				        </span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START AUTH TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n								<label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n								<ui-select data-ng-model="item.authType" name="authType" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="type in [\'password\', \'token\'] | filter: $select.search">\n										<div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="item.authType == \'password\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n								<span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n              <!-- START TOKEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="item.authType == \'token\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="token" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.token" required/>\n								<span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TOKEN -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n\n				</wizard>\n\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("components/footer/footer.html",'<!-- BEGIN FOOTER -->\n<div class="page-footer" data-ng-init="initFooter()">\n  <div class="page-footer-inner">\n     {{info.name}} v. {{info.version}} | 2015-2016 &copy; Powered by Xenialab\n  </div>\n  <div class="scroll-to-top">\n    <i class="icon-arrow-up"></i>\n  </div>\n</div>\n<!-- END FOOTER -->\n'),a.put("components/header/header.html",'<!-- BEGIN HEADER INNER -->\n<div class="page-header-inner" data-ng-init="initHeader()">\n  <!-- BEGIN LOGO -->\n  <div class="page-logo">\n    <a href="/">\n    <img src="assets/images/logo.png" alt="logo" class="logo-default"/>\n    </a>\n    <div class="menu-toggler sidebar-toggler">\n      <!-- DOC: Remove the above "hide" to enable the sidebar toggler button on header -->\n    </div>\n  </div>\n  <!-- END LOGO -->\n  <!-- BEGIN HEADER SEARCH BOX -->\n  <!-- DOC: Apply "search-form-expanded" right after the "search-form" class to have half expanded search box -->\n  <form class="search-form hide" action="extra_search.html" method="GET">\n    <div class="input-group">\n      <input type="text" class="form-control" placeholder="Search..." name="query">\n      <span class="input-group-btn">\n      <a href="javascript:;" class="btn submit"><i class="icon-magnifier"></i></a>\n      </span>\n    </div>\n  </form>\n  <!-- END HEADER SEARCH BOX -->\n  <!-- BEGIN RESPONSIVE MENU TOGGLER -->\n  <a href="javascript:;" class="menu-toggler responsive-toggler" data-toggle="collapse" data-target=".navbar-collapse">\n  </a>\n  <!-- END RESPONSIVE MENU TOGGLER -->\n  <!-- BEGIN TOP NAVIGATION MENU -->\n  <div class="top-menu">\n    <ul class="nav navbar-nav pull-right">\n      <!-- BEGIN LANGUAGE BAR -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-language">\n        <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n        <img ng-src="assets/images/flags/{{ language }}.png">\n        <i class="fa fa-angle-down"></i>\n        </a>\n        <ul class="dropdown-menu dropdown-menu-default">\n          <li>\n            <a href="#" ng-click="changeLanguage(\'it\')">\n            <img alt="" src="assets/images/flags/it.png"> Italian </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'en_EN\')">\n            <img alt="" src="assets/images/flags/en_EN.png"> English </a>\n          </li>\n        </ul>\n      </li>\n      <!-- END LANGUAGE BAR -->\n      <!-- BEGIN USER LOGIN DROPDOWN -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-user">\n        <a href="#" class="dropdown-toggle" dropdown-menu-hover data-toggle="dropdown" data-close-others="true">\n        <img class="img-circle" data-ng-src="api/users/avatar/{{getCurrentUser().userpic || \'unknown_avatar\'}}" alt="...">\n        <span class="username username-hide-on-mobile">\n          {{ getCurrentUser().fullname }} </span>\n        <i class="fa fa-angle-down"></i>\n        </a>\n        <ul class="dropdown-menu dropdown-menu-default">\n          <li>\n            <a ng-href=" {{isAdmin() ? \'/users/view/\'+getCurrentUser().id+\'/account\' : \'/agents/view/\'+getCurrentUser().id+\'/account\'}}">\n            <i class="icon-key"></i>Change password</a>\n          </li>\n          <!-- <li>\n            <a href="#">\n            <i class="icon-calendar"></i> My Calendar </a>\n          </li> -->\n          <!-- <li>\n            <a href="#">\n            <i class="icon-envelope-open"></i> My Inbox <span class="badge badge-danger">\n            3 </span>\n            </a>\n          </li> -->\n          <!-- <li>\n            <a href="#/todo">\n            <i class="icon-rocket"></i> My Tasks <span class="badge badge-success">\n            7 </span>\n            </a>\n          </li> -->\n          <!-- <li class="divider">\n          </li> -->\n          <!-- <li>\n            <a href="#">\n            <i class="icon-lock"></i> Lock Screen </a>\n          </li> -->\n          <li data-ng-click="logout()">\n            <a href="#">\n            <i class="icon-logout"></i> Log Out </a>\n          </li>\n        </ul>\n      </li>\n      <!-- END USER LOGIN DROPDOWN -->\n      <!-- BEGIN QUICK SIDEBAR TOGGLER -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-quick-sidebar-toggler" data-ng-click="toggleQuickSidebar()">\n        <a href="#" class="dropdown-toggle">\n        <i class="icon-logout"></i>\n        </a>\n      </li>\n      <!-- END QUICK SIDEBAR TOGGLER -->\n    </ul>\n  </div>\n  <!-- END TOP NAVIGATION MENU -->\n</div>\n<!-- END HEADER INNER -->\n'),a.put("components/modal/delete.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text" ng-bind="modal.text"></p>\n  <div ng-if="modal.html" ng-bind-html="modal.html"></div>\n</div>\n<div class="modal-footer">\n  <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" ng-bind="button.text" class="btn"></button>\n</div>\n'),a.put("components/quickSidebar/modal/add.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title | translate" class="modal-title"></h4>\n</div>\n\n<div class="modal-body">\n  <div class="portlet box blue">\n		<div class="portlet-title">\n			<div class="caption">\n				<i class="icon-people"></i>{{\'APPLICATION_SELECTED_AGENTS\' | translate}}\n			</div>\n		</div>\n		<div class="portlet-body">\n			<ul>\n				<li data-ng-repeat="item in items">\n					 {{item.fullname}}\n				</li>\n\n        <li data-ng-repeat="item in selected.items">\n					 {{item.fullname}}\n				</li>\n			</ul>\n		</div>\n	</div>\n\n  <ui-select multiple name="items" ng-model="selected.items" theme="bootstrap">\n    <ui-select-match placeholder="{{\'APPLICATION_SELECTED_AGENTS\' | translate}}">{{$item.fullname}}</ui-select-match>\n    <ui-select-choices repeat="{id: agent.id, fullname: agent.fullname} as agent in agents.rows | filter: $select.search">\n      {{agent.fullname}}\n    </ui-select-choices>\n  </ui-select>\n</div>\n\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-click="ok()" data-ng-show="selected.items.length">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" data-ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("components/quickSidebar/modal/close.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title | translate" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text" ng-bind="modal.text | translate"></p>\n  <!-- <div ng-if="modal.html" ng-bind-html="modal.html"></div> -->\n</div>\n<div class="modal-footer">\n  <button class="btn btn-danger" type="button" ng-click="ok()">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n  <!-- <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" ng-bind="button.text" class="btn"></button> -->\n</div>\n'),a.put("components/quickSidebar/quickSidebar.html",'<div class="page-quick-sidebar">\n  <div class="nav-justified">\n    <ul class="nav nav-tabs nav-justified">\n      <li data-ng-class="{active:currentTab==0}" data-ng-click="goToTab(0)">\n        <a href="#">\n          <i class="icon-people"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==1}" data-ng-click="goToTab(1)">\n        <a href="#">\n        <i class="icon-eye"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==2}" data-ng-click="goToTab(2)">\n        <a href="#">\n        <i class="icon-globe"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==3}" data-ng-click="goToTab(3)">\n        <a href="#">\n        <i class="icon-bubbles"></i>\n        </a>\n      </li>\n    </ul>\n    <div class="tab-content">\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==0 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list" >\n          <div class="quicksidebar-search">\n            <div class="input-group">\n							<input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_AGENT\' | translate}}..." ng-model="searchAgent">\n							<span class="input-group-btn">\n							<i class="icon-magnifier"></i>\n							</span>\n						</div>\n          </div>\n          <ul class="media-list list-items" data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="agent in agents.rows | orderBy:\'-online\' | filter:searchAgent as resultsAgent" data-ng-if="agent.id !== currentUser.id">\n              <img class="media-object" data-ng-src="api/users/avatar/{{agent.userpic ? agent.userpic : \'unknown_avatar\'}}" alt="{{agent.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(agent.id)">\n                <h4 class="media-heading"><span class="item-status">{{agent.fullname | characters:15 :true}} {{agent.internal}}</h4>\n                <div class="media-heading-small">\n                   <span class="badge badge-empty" data-ng-class="agent.online ? \'badge-success\' : \'badge-danger\'"></span></span> {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{agent.updatedAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="agents.rows.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_AGENTS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="resultsAgent.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_AGENTS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==1 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_USER\' | translate}}..." ng-model="searchUser">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="user in users.rows | orderBy:\'-online\' | filter:searchUser as resultsUser" data-ng-if="user.id !== currentUser.id">\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(user.id)">\n                <h4 class="media-heading">{{user.fullname | characters:15 :true}} {{user.internal}}</h4>\n                <div class="media-heading-small">\n                   <span class="badge badge-empty" data-ng-class="user.online ? \'badge-success\' : \'badge-danger\'"></span> {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{user.updatedAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="users.rows.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_USERS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="resultsUser.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_USERS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==2 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_USER\' | translate}}..." data-ng-model="searchChatRoomsExternals">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="chatRoom in chatRooms | QuickSidebarFilterUsersLowerThan:2 | filter:{type:\'external\'} | filter:searchChatRoomsExternals as resultsChatRoomsExternals">\n              <div class="media-status">\n                <i class="icon icon-close" data-ng-show="chatRoom.status === \'close\'"></i>\n              </div>\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(null, chatRoom.id)">\n                <h4 class="media-heading">{{chatRoom.ChatVisitor.fullname}}</h4>\n                <div class="media-heading-small">\n                   {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{chatRoom.createdAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" data-ng-if="resultsChatRoomsExternals.length === 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_CHATS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==3 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_USER\' | translate}}..." data-ng-model="searchChatRoomsGroups">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="chatRoom in chatRooms | QuickSidebarFilterUsersGreaterThan:2 | filter:searchChatRoomsGroups as resultsChatRoomsGroups">\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(null, chatRoom.id)">\n                <h4 class="media-heading">{{chatRoom.ChatVisitor.fullname}}</h4>\n                <div class="media-heading-small">\n                   {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{chatRoom.updatedAt}}">April 1, 2014</time>\n                </div>\n                <div class="media-heading-small">\n                  <div data-ng-repeat="user in chatRoom.Users | map: \'fullname\'" class="inline">\n                    {{ $last ? user : user + \', \'}}\n                  </div>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" data-ng-if="resultsChatRoomsGroups.length === 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_CHATS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat page-quick-sidebar-content-item-shown" ng-class="{active:messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list" >\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_MESSAGE\' | translate}}..." ng-model="searchMessage">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n        </div>\n        <div class="page-quick-sidebar-item">\n          <div class="page-quick-sidebar-chat-user" data-wrapper-class="page-quick-sidebar-list">\n            <div class="page-quick-sidebar-nav">\n                <a href="#" class="page-quick-sidebar-back-to-list" data-ng-click="goBack()"><i class="icon-arrow-left"></i>Back</a>\n            </div>\n            <div id="page-quick-sidebar-chat-user-messages" class="page-quick-sidebar-chat-user-messages" data-ng-style="style2" ng-scrollbars>\n              <div class="post animate-repeat" data-ng-repeat="chatMessage in chatRoom.ChatMessages | filter:searchMessage as resultsMessage" data-ng-class="chatMessage.UserId === currentUser.id ? \'in\' : \'out\'">\n                <img class="avatar" alt="" ng-src="api/users/avatar/unknown_avatar"/>\n                <div class="message">\n                  <span class="arrow"></span>\n                  <a href="#" class="name">{{chatMessage.User.fullname || chatMessage.ChatVisitor .fullname}}</a> -\n                  <span class="datetime">\n                    <time is="relative-time" datetime="{{chatMessage.createdAt}}">\n                      April 1, 2014\n                    </time>\n                  </span>\n                  <ng-emoticons class="body" emoticons-data="chatMessage.body" emoticons-options="options"/>\n                </div>\n              </div>\n\n              <div class="media-body" style="text-align: center;" data-ng-if="resultsMessage.length == 0">\n                <h5 class="media-heading"><i>{{\'MESSAGE_NO_MESSAGES_FOUND\' | translate | lowercase}}</i></h5>\n              </div>\n\n              <div class="media-body" style="text-align: center;" data-ng-if="chatRoom.status === \'close\'">\n                <h5 class="media-heading"><i>{{\'MESSAGE_CHAT_CLOSED\' | translate | lowercase}}</i></h5>\n              </div>\n\n            </div>\n            <div class="page-quick-sidebar-chat-user-form">\n              <textarea rows="3" class="form-control" style="border:none;resize: none;" placeholder="Type a message here..." ng-enter="sendMessage()" data-ng-model="message.body" data-ng-disabled="chatRoom.status === \'close\'"></textarea>\n              <div class="btn-group" style="width:100%;background-color:white">\n                <button type="button" class="btn btn-default" style="border:none" data-ng-disabled="chatRoom.status === \'close\'" data-ng-click="addAgent(chatRoom.id)"><i class="icon-plus font-blue"></i></button>\n                <button type="button" class="btn btn-default pull-right" style="border:none" data-ng-disabled="chatRoom.status === \'close\'" data-ng-click="closeChatRoom(chatRoom.id)" data-ng-show="chatRoom.type === \'external\'"><i class="icon-close font-red"></i></button>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n'),a.put("components/sidebar/sidebar.html",'<div id="page-sidebar" class="page-sidebar navbar-collapse collapse">\n  <!-- BEGIN SIDEBAR MENU -->\n  <!-- DOC: Apply "page-sidebar-menu-light" class right after "page-sidebar-menu" to enable light sidebar menu style(without borders) -->\n  <!-- DOC: Apply "page-sidebar-menu-hover-submenu" class right after "page-sidebar-menu" to enable hoverable(hover vs accordion) sub menu mode -->\n  <!-- DOC: Apply "page-sidebar-menu-closed" class right after "page-sidebar-menu" to collapse("page-sidebar-closed" class must be applied to the body element) the sidebar sub menu mode -->\n  <!-- DOC: Set data-auto-scroll="false" to disable the sidebar from auto scrolling/focusing -->\n  <!-- DOC: Set data-keep-expand="true" to keep the submenues expanded -->\n  <!-- DOC: Set data-auto-speed="200" to adjust the sub menu slide up/down speed -->\n  <ul data-ng-click="mainTab.active=true" class="page-sidebar-menu" data-keep-expanded="false" data-auto-scroll="true" data-slide-speed="200" data-ng-class="{\'page-sidebar-menu-closed\': settings.layout.pageSidebarClosed}" data-ng-init="getSidebarIntegrations()">\n    <!-- DOC: To remove the search box from the sidebar you just need to completely remove the below "sidebar-search-wrapper" LI element -->\n    <li class="sidebar-search-wrapper">\n      <!-- BEGIN RESPONSIVE QUICK SEARCH FORM -->\n      <!-- DOC: Apply "sidebar-search-bordered" class the below search form to have bordered search box -->\n      <!-- DOC: Apply "sidebar-search-bordered sidebar-search-solid" class the below search form to have bordered & solid search box -->\n      <form class="sidebar-search sidebar-search-bordered" action="extra_search.html" method="POST">\n        <a href="javascript:;" class="remove">\n        <i class="icon-close"></i>\n        </a>\n        <!-- <div class="input-group">\n          <input type="text" class="form-control" placeholder="Search...">\n          <span class="input-group-btn">\n          <a href="javascript:;" class="btn submit"><i class="icon-magnifier"></i></a>\n          </span>\n        </div> -->\n      </form>\n      <!-- END RESPONSIVE QUICK SEARCH FORM -->\n    </li>\n\n    <!-- START DASHBOARD CASE -->\n    <li class="start" data-ng-show="isAssociated(\'dashboard\')" data-ng-class="{active: $state.is(\'main.dashboard\')}">\n      <a href="/dashboard/voice">\n        <i class="icon-rocket"></i>\n        <span class="title">{{\'APPLICATION_DASHBOARD\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.dashboard\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END DASHBOARD CASE -->\n\n    <!-- START YOURDASHBOARD LIST CASE -->\n    <li data-ng-class="{active: $state.is(\'main.yourdashboards.show\')}" data-ng-show="Auth.isAdmin()">\n      <a href="javascript:;">\n        <i class="icon-screen-desktop"></i>\n        <span class="title" >{{\'APPLICATION_YOUR_DASHBOARDS\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.yourdashboards.show\') }"></span>\n      </a>\n      <ul class="sub-menu" data-ng-init="getSidebarDashboards()">\n        <li data-ng-class="{active: $stateParams.id == dashboard.id && $state.includes(\'main.yourdashboards.show\')}" data-ng-repeat="dashboard in dashboards" data-ng-show="dashboard[Auth.getRole()] && dashboard.visible">\n          <a href="/yourdashboards/show/{{dashboard.id}}" >\n          <i class="icon-screen-tablet"></i>\n          <span class="title" >{{dashboard.name}}  </span>\n          </a>\n        </li>\n       </ul>\n    </li>\n    <!-- END YOURDASHBOARD LIST CASE -->\n\n    <!-- START STAFF SEPARATOR -->\n    <li class="heading" data-ng-show="Auth.isAdmin()">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_STAFF\' | translate}}  </span> </h3>\n    </li>\n    <!-- END STAFF SEPARATOR -->\n\n    <!-- START USERS CASE -->\n    <!-- <li data-ng-show="isAssociated(\'users\')" data-ng-class="{active: $state.includes(\'main.users\')}"> -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.users\')}">\n      <a href="/users/list">\n        <i class="icon-eye"></i>\n        <span class="title" >{{\'APPLICATION_USERS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.users\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END USERS CASE -->\n\n    <!-- START AGENTS CASE -->\n    <!-- <li data-ng-show="isAssociated(\'agents\')" data-ng-class="{active: $state.includes(\'main.agents\')}"> -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.agents\')}">\n      <a href="/agents/list">\n        <i class="icon-people"></i>\n        <span class="title" >{{\'APPLICATION_AGENTS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.agents\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END AGENTS CASE -->\n\n    <!-- START TEAMS CASE -->\n    <li data-ng-show="isAssociated(\'teams\')" data-ng-class="{active: $state.includes(\'main.teams\')}">\n      <a href="/teams/list">\n        <i class="icon-shield"></i>\n        <span class="title" >{{\'APPLICATION_TEAMS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.teams\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END TEAMS CASE -->\n    <!-- END STAFF SEPARATOR -->\n\n    <!-- START CONTACT_MANAGER SEPARATOR -->\n    <li class="heading" data-ng-show="Auth.isAdmin()">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_CONTACT_MANAGER\' | translate}}  </span> </h3>\n    </li>\n    <!-- END CONTACT_MANAGER SEPARATOR -->\n\n    <!-- START CONTACTS CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.contactmanager.contacts\')}">\n      <a href="/contactmanager/contacts/list">\n        <i class=" fa fa-users"></i>\n        <span class="title" >{{\'APPLICATION_CONTACTS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.contactmanager.contacts\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END CONTACTS CASE -->\n    <!-- START COMPANIES CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.contactmanager.companies\')}">\n      <a href="/contactmanager/companies/list">\n        <i class="icon-briefcase"></i>\n        <span class="title" >{{\'APPLICATION_COMPANIES\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.contactmanager.companies\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END COMPANIES CASE -->\n    <!-- START CUSTOMFIELDS CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.contactmanager.customfields\')}">\n      <a href="/contactmanager/customfields/list">\n        <i class="icon-pencil"></i>\n        <span class="title" >{{\'APPLICATION_CUSTOM_FIELDS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.contactmanager.customfields\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END CUSTOMFIELDS CASE -->\n    <!-- END CONTACT_MANAGER SEPARATOR -->\n\n    <!-- START CHANNELS SEPARATOR -->\n    <li class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_CHANNELS\' | translate}}  </span> </h3>\n    </li>\n\n    <!-- START icon-link CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{ active: $state.includes(\'main.voice\') }">\n      <a href="javascript:;">\n        <i class="icon-earphones-alt"></i>\n        <span class="title">{{ \'APPLICATION_VOICE\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.voice\') }"></span>\n      </a>\n\n      <ul class="sub-menu">\n        <li data-ng-class="{active: $state.includes(\'main.voice.queues\')}">\n          <a href="/voice/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title">{{\'APPLICATION_QUEUES\' | translate}}</span>\n          </a>\n        </li>\n        <li>\n          <a href="javascript:;">\n          <i class="icon-directions"></i>\n          <span class="title"> {{ \'APPLICATION_ROUTES\' | translate}} </span>\n          <span class="arrow" data-ng-class="{ open: $state.includes(\'main.voice.routes\') }"></span>\n          <ul class="sub-menu">\n            <li data-ng-class="{active: $state.includes(\'main.voice.routes.inbound\')}">\n              <a href="/voice/routes/inbound/list">\n              <i class="icon-call-in"></i>\n              <span class="title"> {{\'APPLICATION_INBOUND\' | translate}} </span>\n              </a>\n            </li>\n            <li data-ng-class="{active: $state.includes(\'main.voice.routes.outbound\')}">\n              <a href="/voice/routes/outbound/list">\n              <i class="icon-call-out"></i>\n              <span class="title"> {{\'APPLICATION_OUTBOUND\' | translate}} </span>\n              </a>\n            </li>\n            <li data-ng-class="{active: $state.includes(\'main.voice.routes.internal\')}">\n              <a href="/voice/routes/internal/list">\n              <i class="icon-reload"></i>\n              <span class="title"> {{\'APPLICATION_INTERNALS\' | translate}} </span>\n              </a>\n            </li>\n          </ul>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.voice.contexts\')}">\n          <a href="/voice/contexts/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_CONTEXTS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.voice.voicemails\')}">\n          <a href="/voice/voicemails/list">\n          <i class="icon-envelope-letter"></i>\n          <span class="title"> {{\'APPLICATION_VOICEMAILS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.voice.mohs\')}">\n          <a href="/voice/mohs/list">\n          <i class="icon-music-tone"></i>\n          <span class="title"> {{\'APPLICATION_MOH\' | translate}} </span>\n          </a>\n        </li>\n        <!-- START REALTIME CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.voice.realtime\')}">\n          <a href="/voice/realtime/view/agents">\n          <i class="icon-energy"></i>\n          <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n          </a>\n        </li>\n        <!-- END REALTIME CASE -->\n      </ul>\n    </li>\n    <!-- END icon-link CASE -->\n\n    <!-- START CHAT CASE -->\n    <li data-ng-show="isAssociated(\'chat\')" data-ng-class="{ active: $state.includes(\'main.chat\') }">\n      <a href="javascript:;">\n        <i class="icon-bubble"></i>\n        <span class="title">{{\'APPLICATION_CHAT\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.chat\') }"></span>\n      </a>\n      <ul class="sub-menu">\n        <li data-ng-class="{active: $state.includes(\'main.chat.websites\')}">\n          <a href="/chat/websites/list">\n          <i class="icon-globe"></i>\n          <span class="title"> {{\'APPLICATION_WEB_SITES\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.chat.queues\')}">\n          <a href="/chat/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_QUEUES\' | translate}} </span>\n          </a>\n        </li>\n        <!-- START REALTIME CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.chat.realtime\')}">\n          <a href="/chat/realtime/view/agent/queues">\n          <i class="icon-energy"></i>\n          <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n          </a>\n        </li>\n        <!-- END REALTIME CASE -->\n      </ul>\n    </li>\n    <!-- END CHAT CASE -->\n\n    <!-- START MAIL CASE -->\n    <li data-ng-class="{ active: $state.includes(\'main.mail\') }">\n      <a href="javascript:;">\n        <i class="icon-envelope"></i>\n        <span class="title">{{\'APPLICATION_MAIL\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.mail\') }"></span>\n      </a>\n\n      <ul class="sub-menu">\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.accounts\') || $state.includes(\'main.mail.account\')}">\n          <a href="/mail/accounts/list">\n          <i class="icon-notebook"></i>\n          <span class="title"> {{\'APPLICATION_ACCOUNTS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.queues\') || $state.includes(\'main.mail.queue\')}">\n          <a href="/mail/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_QUEUES\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.mail.inbox\')}">\n          <a href="/mail/inbox/incoming">\n          <i class="icon-note"></i>\n          <span class="title"> {{\'APPLICATION_INBOX\' | translate}} </span>\n          </a>\n        </li>\n        <!-- START REALTIME CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.realtime\')}">\n          <a href="/mail/realtime/view/agents/queues">\n          <i class="icon-energy"></i>\n          <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n          </a>\n        </li>\n        <!-- END REALTIME CASE -->\n      </ul>\n    </li>\n    <!-- END MAIL CASE -->\n\n    <!-- START FAX CASE -->\n    <li data-ng-class="{active: $state.includes(\'main.fax\')}">\n    <!-- <li data-ng-show="license.fax" data-ng-class="{active: $state.includes(\'main.fax\')}"> -->\n      <a href="javascript:;">\n        <i class="icon-paper-plane"></i>\n        <span class="title"> {{ \'APPLICATION_FAX\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.fax\') }"></span>\n      </a>\n\n      <ul class="sub-menu">\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.accounts\')}">\n          <a href="/fax/accounts/list">\n          <i class="icon-notebook"></i>\n          <span class="title"> {{ \'APPLICATION_ACCOUNTS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.queues\')}">\n          <a href="/fax/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{ \'APPLICATION_QUEUES\' | translate }} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.fax.inbox\')}">\n          <a href="/fax/inbox/incoming">\n          <i class="icon-note"></i>\n          <span class="title"> {{ \'APPLICATION_INBOX\' | translate }} </span>\n          </a>\n        </li>\n        <!-- <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.statistics\')}">\n          <a href="/fax/statistics/summary">\n          <i class="icon-eyeglass"></i>\n          <span class="title"> {{ \'APPLICATION_STATISTICS\' | translate }} </span>\n          </a>\n        </li> -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.automations\')}">\n          <a href="/fax/automations/list">\n          <i class="icon-settings"></i>\n          <span class="title"> {{\'APPLICATION_AUTOMATIONS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.timeline\')}">\n          <a href="/fax/timeline/list">\n          <i class="icon-list"></i>\n          <span class="title"> {{\'APPLICATION_TIMELINE\' | translate}} </span>\n          </a>\n        </li>\n      </ul>\n    </li>\n    <!-- END FAX CASE -->\n    <!-- END CHANNELS SEPARATOR -->\n\n    <!-- START ANALYTICS SEPARATOR -->\n    <li class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_ANALYTICS\' | translate}}  </span> </h3>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.analytics.reports\')}">\n      <a href="/analytics/reports/list">\n        <i class="icon-book-open"></i>\n        <span class="title" >{{\'APPLICATION_REPORTS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.analytics.reports\')" class="selected"></span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.analytics.metrics\')}">\n      <a href="/analytics/metrics/list">\n        <i class="icon-calculator"></i>\n        <span class="title" >{{\'APPLICATION_METRICS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.metrics.reports\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END ANALYTICS SEPARATOR -->\n\n    <!-- START INTEGRATIONS SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span translate> APPLICATION_INTEGRATIONS </span> </h3>\n    </li>\n\n    <!-- START INTEGRATION CASE -->\n    <li data-ng-repeat="integration in integrations" data-ng-if="integration.active" data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.{{integration.state}}\')}">\n      <a href="/{{integration.state}}/list">\n        <i class="icon-handbag"></i>\n        <span class="title" >{{integration.name}}</span>\n        <span data-ng-show="$state.includes(\'main.{{integration.state}}\')" class="selected"></span>\n      </a>\n    </li>\n\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.is(\'main.market\')}">\n      <a href="/market">\n        <i class="icon-handbag"></i>\n        <span class="title" translate>Market Place</span>\n        <span data-ng-show="$state.includes(\'main.market\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.is(\'main.integrations.list\')}">\n      <a href="/integrations/list">\n        <i class="icon-game-controller"></i>\n        <span class="title" translate>Test Your App</span>\n        <span data-ng-show="$state.includes(\'main.integrations.list\')" class="selected"></span>\n      </a>\n    </li> -->\n    <!-- END INTEGRATIONS SEPARATOR -->\n\n    <!-- START TOOLS SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_TOOLS\' | translate}}  </span> </h3>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.triggers\')}">\n      <a href="/triggers/list">\n      <i class="icon-bulb"></i>\n      <span class="title"> {{\'APPLICATION_TRIGGERS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.automations\')}">\n      <a href="/automations/list">\n      <i class="icon-settings"></i>\n      <span class="title"> {{\'APPLICATION_AUTOMATIONS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.trunks\')}">\n      <a href="/trunks/list">\n      <i class="icon-link"></i>\n      <span class="title"> {{\'APPLICATION_TRUNKS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.intervals\')}">\n      <a href="/intervals/list">\n      <i class="icon-clock"></i>\n      <span class="title"> {{\'APPLICATION_INTERVALS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.variables\')}">\n      <a href="/variables/list">\n      <i class="fa fa-eye"></i>\n      <span class="title" >{{\'APPLICATION_VARIABLES\' | translate}}  </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tags\')}">\n      <a href="/tags/list">\n      <i class="icon-tag"></i>\n      <span class="title" >{{\'APPLICATION_TAGS\' | translate}}  </span>\n      </a>\n    </li>\n    <!-- START CALLYSQUARE CASE -->\n    <!-- <li data-ng-show="isAssociated(\'callysquare\')" data-ng-class="{active: $state.includes(\'main.square\')}"> -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.square\')}">\n      <a href="javascript:;">\n        <i class="fa fa-superscript"></i>\n        <span class="title" >{{\'APPLICATION_CALLYSQUARE\' | translate}}</span>\n        <span class="arrow"></span>\n      </a>\n      <ul class="sub-menu">\n        <li data-ng-class="{active: $state.includes(\'main.square.projects\')}">\n          <a href="/square/projects/list">\n          <i class="fa fa-slack"></i>\n          <span class="title" >{{\'APPLICATION_PROJECTS\' | translate}}  </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.square.odbc\')}">\n          <a href="/square/odbcs/list">\n          <i class="fa fa-database"></i>\n          <span class="title" >{{\'APPLICATION_ODBC\' | translate}}  </span>\n          </a>\n        </li>\n       </ul>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.yourdashboards.list\') || $state.includes(\'main.yourdashboards.settings\')}">\n      <a href="/yourdashboards/list">\n      <i class="icon-grid"></i>\n      <span class="title"> {{\'APPLICATION_DASHBOARDS_MANAGER\' | translate}} </span>\n      </a>\n    </li>\n    <!-- END CALLYSQUARE CASE -->\n\n    <!-- START AUTODIALER CASE -->\n    <!-- <li data-ng-show="Auth.isAdmin()">\n      <a href="javascript:;">\n        <i class="icon-call-out"></i>\n        <span class="title">AutoDialer</span>\n        <span class="arrow"></span>\n      </a>\n      <ul class="sub-menu">\n      </ul>\n    </li> -->\n    <!-- END AUTODIALER CASE -->\n\n    <!-- START ANALYTICS CASE -->\n    <!-- <li data-ng-show="isAssociated(\'analytics\')"> -->\n    <!-- <li data-ng-show="Auth.isAdmin()">\n      <a href="#/analytics">\n        <i class="icon-graph"></i>\n        <span class="title" >{{\'APPLICATION_ANALYTICS\' | translate}}</span>\n      </a>\n    </li> -->\n    <!-- END ANALYTICS CASE -->\n\n    <!-- END TOOLS SEPARATOR -->\n\n    <!-- START AUDIO SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_AUDIO\' | translate}}  </span> </h3>\n    </li>\n    <!-- END AUDIO SEPARATOR -->\n\n    <!-- START AUDIO CASE -->\n    <!-- <li data-ng-show="isAssociated(\'audio\')" data-ng-class="{active: $state.is(\'main.sound\')}"> -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.sounds\')}">\n      <a href="/sounds/list">\n        <i class="icon-music-tone-alt"></i>\n        <span class="title" >{{\'APPLICATION_SOUNDS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.sounds\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END AUDIO CASE -->\n\n\n    <!-- START SETTINGS SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_SETTINGS\' | translate}}  </span> </h3>\n    </li>\n    <!-- END SETTINGS SEPARATOR -->\n\n    <!-- START UPDATES CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.updates\')}">\n      <a href="/updates/list">\n        <i class="icon-cloud-download"></i>\n        <span class="title" >{{\'APPLICATION_UPDATES\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.updates\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END UPDATES CASE -->\n\n    <!-- START SMTP CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.smtp\')}">\n      <a href="/smtp/list">\n        <i class="icon-envelope"></i>\n        <span class="title">SMTP</span>\n        <span data-ng-show="$state.includes(\'main.smtp\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END SMTP CASE -->\n\n    <!-- START TEMPLATE CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.templates\')}">\n      <a href="/templates/list">\n      <i class="icon-docs"></i>\n      <span class="title"> {{\'APPLICATION_TEMPLATES\' | translate}} </span>\n      </a>\n    </li>\n    <!-- END TEMPLATE CASE -->\n\n  </ul>\n  <!-- END SIDEBAR MENU -->\n</div>\n');
+}]);
\ No newline at end of file
diff --git a/public/app/6e9756ac.vendor.css b/public/app/6e9756ac.vendor.css
new file mode 100644
index 0000000..66bc190
--- /dev/null
+++ b/public/app/6e9756ac.vendor.css
@@ -0,0 +1,30 @@
+@charset "UTF-8";/*!
+ * Bootstrap v3.3.5 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+angular-xeditable - 0.1.9
+Edit-in-place for angular.js
+Build date: 2015-03-26 
+Animate.css - http://daneden.me/animate
+Licensed under the MIT license - http://opensource.org/licenses/MIT
+
+Copyright (c) 2015 Daniel Eden
+ * Bootstrap-select v1.7.5 (http://silviomoreto.github.io/bootstrap-select)
+ *
+ * Copyright 2013-2015 bootstrap-select
+ * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
+ *  Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome
+ *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ * ui-select
+ * http://github.com/angular-ui/ui-select
+ * Version: 0.13.2 - 2015-10-09T15:34:24.045Z
+ * License: MIT
+ * ui-grid - v3.0.7 - 2015-10-06
+ * Copyright (c) 2015 ; License: MIT 
\ No newline at end of file
diff --git a/public/app/8f45a8c3.vendor.js b/public/app/8f45a8c3.vendor.js
deleted file mode 100644
index 8770a7c..0000000
--- a/public/app/8f45a8c3.vendor.js
+++ /dev/null
@@ -1,93 +0,0 @@
-c.knockout&&b("Knockout groups not supported.");var e=d.mozCurrentTransform;c.matrix&&d.transform.apply(d,c.matrix),f(c.bbox,"Bounding box is required.");var g=T.getAxialAlignedBoundingBox(c.bbox,d.mozCurrentTransform),i=[0,0,d.canvas.width,d.canvas.height];g=T.intersect(g,i)||[0,0,0,0];var j=Math.floor(g[0]),k=Math.floor(g[1]),l=Math.max(Math.ceil(g[2])-j,1),m=Math.max(Math.ceil(g[3])-k,1),n=1,o=1;l>da&&(n=l/da,l=da),m>da&&(o=m/da,m=da);var p="groupAt"+this.groupLevel;c.smask&&(p+="_smask_"+this.smaskCounter++%2);var q=ia.getCanvas(p,l,m,!0),r=q.context;r.scale(1/n,1/o),r.translate(-j,-k),r.transform.apply(r,e),c.smask?this.smaskStack.push({canvas:q.canvas,context:r,offsetX:j,offsetY:k,scaleX:n,scaleY:o,subtype:c.smask.subtype,backdrop:c.smask.backdrop}):(d.setTransform(1,0,0,1,0,0),d.translate(j,k),d.scale(n,o)),h(d,r),this.ctx=r,this.setGState([["BM","Normal"],["ca",1],["CA",1]]),this.groupStack.push(d),this.groupLevel++},endGroup:function(a){this.groupLevel--;var b=this.ctx;this.ctx=this.groupStack.pop(),void 0!==this.ctx.imageSmoothingEnabled?this.ctx.imageSmoothingEnabled=!1:this.ctx.mozImageSmoothingEnabled=!1,a.smask?this.tempSMask=this.smaskStack.pop():this.ctx.drawImage(b.canvas,0,0),this.restore()},beginAnnotations:function(){this.save(),this.current=new ja},endAnnotations:function(){this.restore()},beginAnnotation:function(a,b,c){if(this.save(),q(a)&&4===a.length){var d=a[2]-a[0],e=a[3]-a[1];this.ctx.rect(a[0],a[1],d,e),this.clip(),this.endPath()}this.transform.apply(this,b),this.transform.apply(this,c)},endAnnotation:function(){this.restore()},paintJpegXObject:function(a,c,d){var e=this.objs.get(a);if(!e)return void b("Dependent image isn't ready yet");this.save();var f=this.ctx;if(f.scale(1/c,-1/d),f.drawImage(e,0,0,e.width,e.height,0,-d,c,d),this.imageLayer){var g=f.mozCurrentTransformInverse,h=this.getCanvasPosition(0,0);this.imageLayer.appendImage({objId:a,left:h[0],top:h[1],width:c/g[0],height:d/g[3]})}this.restore()},paintImageMaskXObject:function(a){var b=this.ctx,c=a.width,d=a.height,e=this.current.fillColor,f=this.current.patternFill,h=this.processingType3;if(fa&&h&&void 0===h.compiled&&(ga>=c&&ga>=d?h.compiled=x({data:a.data,width:c,height:d}):h.compiled=null),h&&h.compiled)return void h.compiled(b);var i=ia.getCanvas("maskCanvas",c,d),j=i.context;j.save(),g(j,a),j.globalCompositeOperation="source-in",j.fillStyle=f?e.getPattern(j,this):e,j.fillRect(0,0,c,d),j.restore(),this.paintInlineImageXObject(i.canvas)},paintImageMaskXObjectRepeat:function(a,b,c,d){var e=a.width,f=a.height,h=this.current.fillColor,i=this.current.patternFill,j=ia.getCanvas("maskCanvas",e,f),k=j.context;k.save(),g(k,a),k.globalCompositeOperation="source-in",k.fillStyle=i?h.getPattern(k,this):h,k.fillRect(0,0,e,f),k.restore();for(var l=this.ctx,m=0,n=d.length;n>m;m+=2)l.save(),l.transform(b,0,0,c,d[m],d[m+1]),l.scale(1,-1),l.drawImage(j.canvas,0,0,e,f,0,-1,1,1),l.restore()},paintImageMaskXObjectGroup:function(a){for(var b=this.ctx,c=this.current.fillColor,d=this.current.patternFill,e=0,f=a.length;f>e;e++){var h=a[e],i=h.width,j=h.height,k=ia.getCanvas("maskCanvas",i,j),l=k.context;l.save(),g(l,h),l.globalCompositeOperation="source-in",l.fillStyle=d?c.getPattern(l,this):c,l.fillRect(0,0,i,j),l.restore(),b.save(),b.transform.apply(b,h.transform),b.scale(1,-1),b.drawImage(k.canvas,0,0,i,j,0,-1,1,1),b.restore()}},paintImageXObject:function(a){var c=this.objs.get(a);return c?void this.paintInlineImageXObject(c):void b("Dependent image isn't ready yet")},paintImageXObjectRepeat:function(a,c,d,e){var f=this.objs.get(a);if(!f)return void b("Dependent image isn't ready yet");for(var g=f.width,h=f.height,i=[],j=0,k=e.length;k>j;j+=2)i.push({transform:[c,0,0,d,e[j],e[j+1]],x:0,y:0,w:g,h:h});this.paintInlineImageXObjectGroup(f,i)},paintInlineImageXObject:function(a){var b=a.width,c=a.height,d=this.ctx;this.save(),d.scale(1/b,-1/c);var f,g,h=d.mozCurrentTransformInverse,i=h[0],j=h[1],k=Math.max(Math.sqrt(i*i+j*j),1),l=h[2],m=h[3],n=Math.max(Math.sqrt(l*l+m*m),1);if(a instanceof HTMLElement||!a.data)f=a;else{g=ia.getCanvas("inlineImage",b,c);var o=g.context;e(o,a),f=g.canvas}for(var p=b,q=c,r="prescale1";k>2&&p>1||n>2&&q>1;){var s=p,t=q;k>2&&p>1&&(s=Math.ceil(p/2),k/=p/s),n>2&&q>1&&(t=Math.ceil(q/2),n/=q/t),g=ia.getCanvas(r,s,t),o=g.context,o.clearRect(0,0,s,t),o.drawImage(f,0,0,p,q,0,0,s,t),f=g.canvas,p=s,q=t,r="prescale1"===r?"prescale2":"prescale1"}if(d.drawImage(f,0,0,p,q,0,-c,b,c),this.imageLayer){var u=this.getCanvasPosition(0,-c);this.imageLayer.appendImage({imgData:a,left:u[0],top:u[1],width:b/h[0],height:c/h[3]})}this.restore()},paintInlineImageXObjectGroup:function(a,b){var c=this.ctx,d=a.width,f=a.height,g=ia.getCanvas("inlineImage",d,f),h=g.context;e(h,a);for(var i=0,j=b.length;j>i;i++){var k=b[i];if(c.save(),c.transform.apply(c,k.transform),c.scale(1,-1),c.drawImage(g.canvas,k.x,k.y,k.w,k.h,0,-1,1,1),this.imageLayer){var l=this.getCanvasPosition(k.x,k.y);this.imageLayer.appendImage({imgData:a,left:l[0],top:l[1],width:d,height:f})}c.restore()}},paintSolidColorImageMask:function(){this.ctx.fillRect(0,0,1,1)},paintXObject:function(){I.notify(H.unknown),b("Unsupported 'paintXObject' command.")},markPoint:function(a){},markPointProps:function(a,b){},beginMarkedContent:function(a){},beginMarkedContentProps:function(a,b){},endMarkedContent:function(){},beginCompat:function(){},endCompat:function(){},consumePath:function(){var a=this.ctx;this.pendingClip&&(this.pendingClip===v?void 0!==a.mozFillRule?(a.mozFillRule="evenodd",a.clip(),a.mozFillRule="nonzero"):a.clip("evenodd"):a.clip(),this.pendingClip=null),a.beginPath()},getSinglePixelWidth:function(a){if(null===this.cachedGetSinglePixelWidth){var b=this.ctx.mozCurrentTransformInverse;this.cachedGetSinglePixelWidth=Math.sqrt(Math.max(b[0]*b[0]+b[1]*b[1],b[2]*b[2]+b[3]*b[3]))}return this.cachedGetSinglePixelWidth},getCanvasPosition:function(a,b){var c=this.ctx.mozCurrentTransform;return[c[0]*a+c[2]*b+c[4],c[1]*a+c[3]*b+c[5]]}};for(var z in G)c.prototype[G[z]]=c.prototype[z];return c}(),la=function(){function a(a,b,c){var d=a.createShader(c);a.shaderSource(d,b),a.compileShader(d);var e=a.getShaderParameter(d,a.COMPILE_STATUS);if(!e){var f=a.getShaderInfoLog(d);throw new Error("Error during shader compilation: "+f)}return d}function b(b,c){return a(b,c,b.VERTEX_SHADER)}function c(b,c){return a(b,c,b.FRAGMENT_SHADER)}function d(a,b){for(var c=a.createProgram(),d=0,e=b.length;e>d;++d)a.attachShader(c,b[d]);a.linkProgram(c);var f=a.getProgramParameter(c,a.LINK_STATUS);if(!f){var g=a.getProgramInfoLog(c);throw new Error("Error during program linking: "+g)}return c}function e(a,b,c){a.activeTexture(c);var d=a.createTexture();return a.bindTexture(a.TEXTURE_2D,d),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.NEAREST),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,b),d}function f(){m||(n=document.createElement("canvas"),m=n.getContext("webgl",{premultipliedalpha:!1}))}function g(){var a,e;f(),a=n,n=null,e=m,m=null;var g=b(e,o),h=c(e,p),i=d(e,[g,h]);e.useProgram(i);var j={};j.gl=e,j.canvas=a,j.resolutionLocation=e.getUniformLocation(i,"u_resolution"),j.positionLocation=e.getAttribLocation(i,"a_position"),j.backdropLocation=e.getUniformLocation(i,"u_backdrop"),j.subtypeLocation=e.getUniformLocation(i,"u_subtype");var k=e.getAttribLocation(i,"a_texCoord"),l=e.getUniformLocation(i,"u_image"),r=e.getUniformLocation(i,"u_mask"),s=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,s),e.bufferData(e.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),e.STATIC_DRAW),e.enableVertexAttribArray(k),e.vertexAttribPointer(k,2,e.FLOAT,!1,0,0),e.uniform1i(l,0),e.uniform1i(r,1),q=j}function h(a,b,c){var d=a.width,f=a.height;q||g();var h=q,i=h.canvas,j=h.gl;i.width=d,i.height=f,j.viewport(0,0,j.drawingBufferWidth,j.drawingBufferHeight),j.uniform2f(h.resolutionLocation,d,f),c.backdrop?j.uniform4f(h.resolutionLocation,c.backdrop[0],c.backdrop[1],c.backdrop[2],1):j.uniform4f(h.resolutionLocation,0,0,0,0),j.uniform1i(h.subtypeLocation,"Luminosity"===c.subtype?1:0);var k=e(j,a,j.TEXTURE0),l=e(j,b,j.TEXTURE1),m=j.createBuffer();return j.bindBuffer(j.ARRAY_BUFFER,m),j.bufferData(j.ARRAY_BUFFER,new Float32Array([0,0,d,0,0,f,0,f,d,0,d,f]),j.STATIC_DRAW),j.enableVertexAttribArray(h.positionLocation),j.vertexAttribPointer(h.positionLocation,2,j.FLOAT,!1,0,0),j.clearColor(0,0,0,0),j.enable(j.BLEND),j.blendFunc(j.ONE,j.ONE_MINUS_SRC_ALPHA),j.clear(j.COLOR_BUFFER_BIT),j.drawArrays(j.TRIANGLES,0,6),j.flush(),j.deleteTexture(k),j.deleteTexture(l),j.deleteBuffer(m),i}function j(){var a,e;f(),a=n,n=null,e=m,m=null;var g=b(e,r),h=c(e,s),i=d(e,[g,h]);e.useProgram(i);var j={};j.gl=e,j.canvas=a,j.resolutionLocation=e.getUniformLocation(i,"u_resolution"),j.scaleLocation=e.getUniformLocation(i,"u_scale"),j.offsetLocation=e.getUniformLocation(i,"u_offset"),j.positionLocation=e.getAttribLocation(i,"a_position"),j.colorLocation=e.getAttribLocation(i,"a_color"),t=j}function k(a,b,c,d,e){t||j();var f=t,g=f.canvas,h=f.gl;g.width=a,g.height=b,h.viewport(0,0,h.drawingBufferWidth,h.drawingBufferHeight),h.uniform2f(f.resolutionLocation,a,b);var i,k,l,m=0;for(i=0,k=d.length;k>i;i++)switch(d[i].type){case"lattice":l=d[i].coords.length/d[i].verticesPerRow|0,m+=(l-1)*(d[i].verticesPerRow-1)*6;break;case"triangles":m+=d[i].coords.length}var n=new Float32Array(2*m),o=new Uint8Array(3*m),p=e.coords,q=e.colors,r=0,s=0;for(i=0,k=d.length;k>i;i++){var u=d[i],v=u.coords,w=u.colors;switch(u.type){case"lattice":var x=u.verticesPerRow;l=v.length/x|0;for(var y=1;l>y;y++)for(var z=y*x+1,A=1;x>A;A++,z++)n[r]=p[v[z-x-1]],n[r+1]=p[v[z-x-1]+1],n[r+2]=p[v[z-x]],n[r+3]=p[v[z-x]+1],n[r+4]=p[v[z-1]],n[r+5]=p[v[z-1]+1],o[s]=q[w[z-x-1]],o[s+1]=q[w[z-x-1]+1],o[s+2]=q[w[z-x-1]+2],o[s+3]=q[w[z-x]],o[s+4]=q[w[z-x]+1],o[s+5]=q[w[z-x]+2],o[s+6]=q[w[z-1]],o[s+7]=q[w[z-1]+1],o[s+8]=q[w[z-1]+2],n[r+6]=n[r+2],n[r+7]=n[r+3],n[r+8]=n[r+4],n[r+9]=n[r+5],n[r+10]=p[v[z]],n[r+11]=p[v[z]+1],o[s+9]=o[s+3],o[s+10]=o[s+4],o[s+11]=o[s+5],o[s+12]=o[s+6],o[s+13]=o[s+7],o[s+14]=o[s+8],o[s+15]=q[w[z]],o[s+16]=q[w[z]+1],o[s+17]=q[w[z]+2],r+=12,s+=18;break;case"triangles":for(var B=0,C=v.length;C>B;B++)n[r]=p[v[B]],n[r+1]=p[v[B]+1],o[s]=q[w[B]],o[s+1]=q[w[B]+1],o[s+2]=q[w[B]+2],r+=2,s+=3}}c?h.clearColor(c[0]/255,c[1]/255,c[2]/255,1):h.clearColor(0,0,0,0),h.clear(h.COLOR_BUFFER_BIT);var D=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,D),h.bufferData(h.ARRAY_BUFFER,n,h.STATIC_DRAW),h.enableVertexAttribArray(f.positionLocation),h.vertexAttribPointer(f.positionLocation,2,h.FLOAT,!1,0,0);var E=h.createBuffer();return h.bindBuffer(h.ARRAY_BUFFER,E),h.bufferData(h.ARRAY_BUFFER,o,h.STATIC_DRAW),h.enableVertexAttribArray(f.colorLocation),h.vertexAttribPointer(f.colorLocation,3,h.UNSIGNED_BYTE,!1,0,0),h.uniform2f(f.scaleLocation,e.scaleX,e.scaleY),h.uniform2f(f.offsetLocation,e.offsetX,e.offsetY),h.drawArrays(h.TRIANGLES,0,m),h.flush(),h.deleteBuffer(D),h.deleteBuffer(E),g}function l(){q&&q.canvas&&(q.canvas.width=0,q.canvas.height=0),t&&t.canvas&&(t.canvas.width=0,t.canvas.height=0),q=null,t=null}var m,n,o="  attribute vec2 a_position;                                      attribute vec2 a_texCoord;                                                                                                      uniform vec2 u_resolution;                                                                                                      varying vec2 v_texCoord;                                                                                                        void main() {                                                     vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0;       gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);                                                                              v_texCoord = a_texCoord;                                      }                                                             ",p="  precision mediump float;                                                                                                        uniform vec4 u_backdrop;                                        uniform int u_subtype;                                          uniform sampler2D u_image;                                      uniform sampler2D u_mask;                                                                                                       varying vec2 v_texCoord;                                                                                                        void main() {                                                     vec4 imageColor = texture2D(u_image, v_texCoord);               vec4 maskColor = texture2D(u_mask, v_texCoord);                 if (u_backdrop.a > 0.0) {                                         maskColor.rgb = maskColor.rgb * maskColor.a +                                   u_backdrop.rgb * (1.0 - maskColor.a);         }                                                               float lum;                                                      if (u_subtype == 0) {                                             lum = maskColor.a;                                            } else {                                                          lum = maskColor.r * 0.3 + maskColor.g * 0.59 +                        maskColor.b * 0.11;                                     }                                                               imageColor.a *= lum;                                            imageColor.rgb *= imageColor.a;                                 gl_FragColor = imageColor;                                    }                                                             ",q=null,r="  attribute vec2 a_position;                                      attribute vec3 a_color;                                                                                                         uniform vec2 u_resolution;                                      uniform vec2 u_scale;                                           uniform vec2 u_offset;                                                                                                          varying vec4 v_color;                                                                                                           void main() {                                                     vec2 position = (a_position + u_offset) * u_scale;              vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0;         gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);                                                                              v_color = vec4(a_color / 255.0, 1.0);                         }                                                             ",s="  precision mediump float;                                                                                                        varying vec4 v_color;                                                                                                           void main() {                                                     gl_FragColor = v_color;                                       }                                                             ",t=null;return{get isEnabled(){if(PDFJS.disableWebGL)return!1;var a=!1;try{f(),a=!!m}catch(b){}return i(this,"isEnabled",a)},composeSMask:h,drawFigures:k,clear:l}}(),ma={};ma.RadialAxial={fromIR:function(a){var b=a[1],c=a[2],d=a[3],e=a[4],f=a[5],g=a[6];return{type:"Pattern",getPattern:function(a){var h;"axial"===b?h=a.createLinearGradient(d[0],d[1],e[0],e[1]):"radial"===b&&(h=a.createRadialGradient(d[0],d[1],f,e[0],e[1],g));for(var i=0,j=c.length;j>i;++i){var k=c[i];h.addColorStop(k[0],k[1])}return h}}}};var na=function(){function a(a,b,c,d,e,f,g,h){var i,j=b.coords,k=b.colors,l=a.data,m=4*a.width;j[c+1]>j[d+1]&&(i=c,c=d,d=i,i=f,f=g,g=i),j[d+1]>j[e+1]&&(i=d,d=e,e=i,i=g,g=h,h=i),j[c+1]>j[d+1]&&(i=c,c=d,d=i,i=f,f=g,g=i);var n=(j[c]+b.offsetX)*b.scaleX,o=(j[c+1]+b.offsetY)*b.scaleY,p=(j[d]+b.offsetX)*b.scaleX,q=(j[d+1]+b.offsetY)*b.scaleY,r=(j[e]+b.offsetX)*b.scaleX,s=(j[e+1]+b.offsetY)*b.scaleY;if(!(o>=s))for(var t,u,v,w,x,y,z,A,B,C=k[f],D=k[f+1],E=k[f+2],F=k[g],G=k[g+1],H=k[g+2],I=k[h],J=k[h+1],K=k[h+2],L=Math.round(o),M=Math.round(s),N=L;M>=N;N++){q>N?(B=o>N?0:o===q?1:(o-N)/(o-q),t=n-(n-p)*B,u=C-(C-F)*B,v=D-(D-G)*B,w=E-(E-H)*B):(B=N>s?1:q===s?0:(q-N)/(q-s),t=p-(p-r)*B,u=F-(F-I)*B,v=G-(G-J)*B,w=H-(H-K)*B),B=o>N?0:N>s?1:(o-N)/(o-s),x=n-(n-r)*B,y=C-(C-I)*B,z=D-(D-J)*B,A=E-(E-K)*B;for(var O=Math.round(Math.min(t,x)),P=Math.round(Math.max(t,x)),Q=m*N+4*O,R=O;P>=R;R++)B=(t-R)/(t-x),B=0>B?0:B>1?1:B,l[Q++]=u-(u-y)*B|0,l[Q++]=v-(v-z)*B|0,l[Q++]=w-(w-A)*B|0,l[Q++]=255}}function b(b,c,e){var f,g,h=c.coords,i=c.colors;switch(c.type){case"lattice":var j=c.verticesPerRow,k=Math.floor(h.length/j)-1,l=j-1;for(f=0;k>f;f++)for(var m=f*j,n=0;l>n;n++,m++)a(b,e,h[m],h[m+1],h[m+j],i[m],i[m+1],i[m+j]),a(b,e,h[m+j+1],h[m+1],h[m+j],i[m+j+1],i[m+1],i[m+j]);break;case"triangles":for(f=0,g=h.length;g>f;f+=3)a(b,e,h[f],h[f+1],h[f+2],i[f],i[f+1],i[f+2]);break;default:d("illigal figure")}}function c(a,c,d,e,f,g){var h,i,j,k,l=1.1,m=3e3,n=Math.floor(a[0]),o=Math.floor(a[1]),p=Math.ceil(a[2])-n,q=Math.ceil(a[3])-o,r=Math.min(Math.ceil(Math.abs(p*c[0]*l)),m),s=Math.min(Math.ceil(Math.abs(q*c[1]*l)),m),t=p/r,u=q/s,v={coords:d,colors:e,offsetX:-n,offsetY:-o,scaleX:1/t,scaleY:1/u};if(la.isEnabled)h=la.drawFigures(r,s,g,f,v),i=ia.getCanvas("mesh",r,s,!1),i.context.drawImage(h,0,0),h=i.canvas;else{i=ia.getCanvas("mesh",r,s,!1);var w=i.context,x=w.createImageData(r,s);if(g){var y=x.data;for(j=0,k=y.length;k>j;j+=4)y[j]=g[0],y[j+1]=g[1],y[j+2]=g[2],y[j+3]=255}for(j=0;j<f.length;j++)b(x,f[j],v);w.putImageData(x,0,0),h=i.canvas}return{canvas:h,offsetX:n,offsetY:o,scaleX:t,scaleY:u}}return c}();ma.Mesh={fromIR:function(a){var b=a[2],c=a[3],d=a[4],e=a[5],f=a[6],g=a[8];return{type:"Pattern",getPattern:function(a,h,i){var j;if(i)j=T.singularValueDecompose2dScale(a.mozCurrentTransform);else if(j=T.singularValueDecompose2dScale(h.baseTransform),f){var k=T.singularValueDecompose2dScale(f);j=[j[0]*k[0],j[1]*k[1]]}var l=na(e,j,b,c,d,i?null:g);return i||(a.setTransform.apply(a,h.baseTransform),f&&a.transform.apply(a,f)),a.translate(l.offsetX,l.offsetY),a.scale(l.scaleX,l.scaleY),a.createPattern(l.canvas,"no-repeat")}}}},ma.Dummy={fromIR:function(){return{type:"Pattern",getPattern:function(){return"hotpink"}}}};var oa=function(){function b(a,b,c,d,e,f){this.operatorList=a[2],this.matrix=a[3]||[1,0,0,1,0,0],this.bbox=a[4],this.xstep=a[5],this.ystep=a[6],this.paintType=a[7],this.tilingType=a[8],this.color=b,this.objs=d,this.commonObjs=e,this.baseTransform=f,this.type="Pattern",this.ctx=c}var c={COLORED:1,UNCOLORED:2},e=3e3;return b.prototype={createPatternCanvas:function(b){var c=this.operatorList,d=this.bbox,f=this.xstep,g=this.ystep,h=this.paintType,i=this.tilingType,j=this.color,k=this.objs,l=this.commonObjs;a("TilingType: "+i);var m=d[0],n=d[1],o=d[2],p=d[3],q=[m,n],r=[m+f,n+g],s=r[0]-q[0],t=r[1]-q[1],u=T.singularValueDecompose2dScale(this.matrix),v=T.singularValueDecompose2dScale(this.baseTransform),w=[u[0]*v[0],u[1]*v[1]];s=Math.min(Math.ceil(Math.abs(s*w[0])),e),t=Math.min(Math.ceil(Math.abs(t*w[1])),e);var x=ia.getCanvas("pattern",s,t,!0),y=x.context,z=new ka(y,l,k);z.groupLevel=b.groupLevel,this.setFillAndStrokeStyleToContext(y,h,j),this.setScale(s,t,f,g),this.transformToScale(z);var A=[1,0,0,1,-q[0],-q[1]];return z.transform.apply(z,A),this.clipBbox(z,d,m,n,o,p),z.executeOperatorList(c),x.canvas},setScale:function(a,b,c,d){this.scale=[a/c,b/d]},transformToScale:function(a){var b=this.scale,c=[b[0],0,0,b[1],0,0];a.transform.apply(a,c)},scaleToContext:function(){var a=this.scale;this.ctx.scale(1/a[0],1/a[1])},clipBbox:function(a,b,c,d,e,f){if(b&&q(b)&&4===b.length){var g=e-c,h=f-d;a.ctx.rect(c,d,g,h),a.clip(),a.endPath()}},setFillAndStrokeStyleToContext:function(a,b,e){switch(b){case c.COLORED:var f=this.ctx;a.fillStyle=f.fillStyle,a.strokeStyle=f.strokeStyle;break;case c.UNCOLORED:var g=T.makeCssRgb(e[0],e[1],e[2]);a.fillStyle=g,a.strokeStyle=g;break;default:d("Unsupported paint type: "+b)}},getPattern:function(a,b){var c=this.createPatternCanvas(b);return a=this.ctx,a.setTransform.apply(a,this.baseTransform),a.transform.apply(a,this.matrix),this.scaleToContext(),a.createPattern(c,"repeat")}},b}();PDFJS.disableFontFace=!1;var pa={insertRule:function(a){var b=document.getElementById("PDFJS_FONT_STYLE_TAG");b||(b=document.createElement("style"),b.id="PDFJS_FONT_STYLE_TAG",document.documentElement.getElementsByTagName("head")[0].appendChild(b));var c=b.sheet;c.insertRule(a,c.cssRules.length)},clear:function(){var a=document.getElementById("PDFJS_FONT_STYLE_TAG");a&&a.parentNode.removeChild(a),this.nativeFontFaces.forEach(function(a){document.fonts["delete"](a)}),this.nativeFontFaces.length=0},get loadTestFont(){return i(this,"loadTestFont",atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA=="))},get isEvalSupported(){var a=!1;if(PDFJS.isEvalSupported)try{new Function(""),a=!0}catch(b){}return i(this,"isEvalSupported",a)},loadTestFontId:0,loadingContext:{requests:[],nextRequestId:0},isSyncFontLoadingSupported:function(){if(A)return!1;var a=window.navigator.userAgent,b=/Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(a);return b&&b[1]>=14?!0:"node"===a?!0:!1}(),nativeFontFaces:[],isFontLoadingAPISupported:!A&&"undefined"!=typeof document&&!!document.fonts,addNativeFontFace:function(a){this.nativeFontFaces.push(a),document.fonts.add(a)},bind:function(a,c){f(!A,"bind() shall be called from main thread");for(var d=[],e=[],g=[],h=function(a){return a.loaded["catch"](function(c){b('Failed to load font "'+a.family+'": '+c)})},i=0,j=a.length;j>i;i++){var k=a[i];if(!k.attached&&k.loading!==!1)if(k.attached=!0,this.isFontLoadingAPISupported){var l=k.createNativeFontFace();l&&g.push(h(l))}else{var m=k.bindDOM();m&&(d.push(m),e.push(k))}}var n=pa.queueLoadingCallback(c);this.isFontLoadingAPISupported?Promise.all(g).then(function(){n.complete()}):d.length>0&&!this.isSyncFontLoadingSupported?pa.prepareFontLoadEvent(d,e,n):n.complete()},queueLoadingCallback:function(a){function b(){for(f(!e.end,"completeRequest() cannot be called twice"),e.end=Date.now();c.requests.length>0&&c.requests[0].end;){var a=c.requests.shift();setTimeout(a.callback,0)}}var c=pa.loadingContext,d="pdfjs-font-loading-"+c.nextRequestId++,e={id:d,complete:b,callback:a,started:Date.now()};return c.requests.push(e),e},prepareFontLoadEvent:function(a,c,d){function e(a,b){return a.charCodeAt(b)<<24|a.charCodeAt(b+1)<<16|a.charCodeAt(b+2)<<8|255&a.charCodeAt(b+3)}function f(a,b,c,d){var e=a.substr(0,b),f=a.substr(b+c);return e+d+f}function g(a,c){if(l++,l>30)return b("Load test font never loaded."),void c();k.font="30px "+a,k.fillText(".",0,20);var d=k.getImageData(0,0,1,1);return d.data[3]>0?void c():void setTimeout(g.bind(null,a,c))}var h,i,j=document.createElement("canvas");j.width=1,j.height=1;var k=j.getContext("2d"),l=0,n="lt"+Date.now()+this.loadTestFontId++,o=this.loadTestFont,p=976;o=f(o,p,n.length,n);var q=16,r=1482184792,s=e(o,q);for(h=0,i=n.length-3;i>h;h+=4)s=s-r+e(n,h)|0;h<n.length&&(s=s-r+e(n+"XXX",h)|0),o=f(o,q,4,m(s));var t="url(data:font/opentype;base64,"+btoa(o)+");",u='@font-face { font-family:"'+n+'";src:'+t+"}";pa.insertRule(u);var v=[];for(h=0,i=c.length;i>h;h++)v.push(c[h].loadedName);v.push(n);var w=document.createElement("div");for(w.setAttribute("style","visibility: hidden;width: 10px; height: 10px;position: absolute; top: 0px; left: 0px;"),h=0,i=v.length;i>h;++h){var x=document.createElement("span");x.textContent="Hi",x.style.fontFamily=v[h],w.appendChild(x)}document.body.appendChild(w),g(n,function(){document.body.removeChild(w),d.complete()})}},qa=function(){function a(a,b,c){if(this.compiledGlyphs={},1!==arguments.length);else{var d=arguments[0];for(var e in d)this[e]=d[e]}}return a.prototype={createNativeFontFace:function(){if(!this.data)return null;if(PDFJS.disableFontFace)return this.disableFontFace=!0,null;var a=new FontFace(this.loadedName,this.data,{});return pa.addNativeFontFace(a),PDFJS.pdfBug&&"FontInspector"in z&&z.FontInspector.enabled&&z.FontInspector.fontAdded(this),a},bindDOM:function(){if(!this.data)return null;if(PDFJS.disableFontFace)return this.disableFontFace=!0,null;var a=k(new Uint8Array(this.data)),b=this.loadedName,c="url(data:"+this.mimetype+";base64,"+window.btoa(a)+");",d='@font-face { font-family:"'+b+'";src:'+c+"}";return pa.insertRule(d),PDFJS.pdfBug&&"FontInspector"in z&&z.FontInspector.enabled&&z.FontInspector.fontAdded(this,c),d},getPathGenerator:function(a,b){if(!(b in this.compiledGlyphs)){var c,d,e,f=a.get(this.loadedName+"_path_"+b);if(pa.isEvalSupported){var g,h="";for(d=0,e=f.length;e>d;d++)c=f[d],g=void 0!==c.args?c.args.join(","):"",h+="c."+c.cmd+"("+g+");\n";this.compiledGlyphs[b]=new Function("c","size",h)}else this.compiledGlyphs[b]=function(a,b){for(d=0,e=f.length;e>d;d++)c=f[d],"scale"===c.cmd&&(c.args=[b,-b]),a[c.cmd].apply(a,c.args)}}return this.compiledGlyphs[b]}},a}(),ra=10,sa=function(){function a(a,b,c){var d=a.style;if(d.fontSize=b.fontSize+"px",d.direction=b.fontDirection<0?"rtl":"ltr",c){d.fontWeight=c.black?c.bold?"bolder":"bold":c.bold?"bold":"normal",d.fontStyle=c.italic?"italic":"normal";var e=c.loadedName,f=e?'"'+e+'", ':"",g=c.fallbackName||"Helvetica, sans-serif";d.fontFamily=f+g}}function c(a){var c=document.createElement("section"),d=c.style,e=a.rect[2]-a.rect[0],f=a.rect[3]-a.rect[1];if(a.borderStyle.width>0){c.style.borderWidth=a.borderStyle.width+"px",a.borderStyle.style!==F.UNDERLINE&&(e-=2*a.borderStyle.width,f-=2*a.borderStyle.width);var g=a.borderStyle.horizontalCornerRadius,h=a.borderStyle.verticalCornerRadius;if(g>0||h>0){var i=g+"px / "+h+"px";CustomStyle.setProp("borderRadius",c,i)}switch(a.borderStyle.style){case F.SOLID:c.style.borderStyle="solid";break;case F.DASHED:c.style.borderStyle="dashed";break;case F.BEVELED:b("Unimplemented border style: beveled");break;case F.INSET:b("Unimplemented border style: inset");break;case F.UNDERLINE:c.style.borderBottomStyle="solid"}a.color?c.style.borderColor=T.makeCssRgb(0|a.color[0],0|a.color[1],0|a.color[2]):c.style.borderWidth=0}return d.width=e+"px",d.height=f+"px",c}function d(b,c){var d=document.createElement("div"),e=b.rect[2]-b.rect[0],f=b.rect[3]-b.rect[1];d.style.width=e+"px",d.style.height=f+"px",d.style.display="table";var g=document.createElement("div");g.textContent=b.fieldValue;var h=b.textAlignment;g.style.textAlign=["left","center","right"][h],g.style.verticalAlign="middle",g.style.display="table-cell";var i=b.fontRefName?c.getData(b.fontRefName):null;return a(g,b,i),d.appendChild(g),d}function e(a){var b=a.rect;b[3]-b[1]<ra&&(b[3]=b[1]+ra),b[2]-b[0]<ra&&(b[2]=b[0]+(b[3]-b[1]));var d=c(a);d.className="annotText";var e=document.createElement("img");e.style.height=d.style.height,e.style.width=d.style.width;var f=a.name;e.src=PDFJS.imageResourcesPath+"annotation-"+f.toLowerCase()+".svg",e.alt="[{{type}} Annotation]",e.dataset.l10nId="text_annotation_type",e.dataset.l10nArgs=JSON.stringify({type:f});var g=document.createElement("div");g.className="annotTextContentWrapper",g.style.left=Math.floor(b[2]-b[0]+5)+"px",g.style.top="-10px";var h=document.createElement("div");h.className="annotTextContent",h.setAttribute("hidden",!0);var i,j;if(a.hasBgColor&&a.color){var k=a.color,l=.7,m=l*(255-k[0])+k[0],n=l*(255-k[1])+k[1],o=l*(255-k[2])+k[2];h.style.backgroundColor=T.makeCssRgb(0|m,0|n,0|o)}var p=document.createElement("h1"),q=document.createElement("p");if(p.textContent=a.title,a.content||a.title){var r=document.createElement("span"),s=a.content.split(/(?:\r\n?|\n)/);for(i=0,j=s.length;j>i;++i){var t=s[i];r.appendChild(document.createTextNode(t)),j-1>i&&r.appendChild(document.createElement("br"))}q.appendChild(r);var u=!1,v=function(a){a&&(u=!0),h.hasAttribute("hidden")&&(d.style.zIndex+=1,h.removeAttribute("hidden"))},w=function(a){a&&(u=!1),h.hasAttribute("hidden")||u||(d.style.zIndex-=1,h.setAttribute("hidden",!0))},x=function(){u?w(!0):v(!0)};e.addEventListener("click",function(){x()},!1),e.addEventListener("mouseover",function(){v()},!1),e.addEventListener("mouseout",function(){w()},!1),h.addEventListener("click",function(){w(!0)},!1)}else h.setAttribute("hidden",!0);return h.appendChild(p),h.appendChild(q),g.appendChild(h),d.appendChild(e),d.appendChild(g),d}function f(a){var b=c(a);b.className="annotLink";var d=document.createElement("a");return d.href=d.title=a.url||"",a.url&&j()&&(d.target=K[PDFJS.externalLinkTarget]),b.appendChild(d),b}function g(a,b){switch(a.annotationType){case E.WIDGET:return d(a,b);case E.TEXT:return e(a);case E.LINK:return f(a);default:throw new Error("Unsupported annotationType: "+a.annotationType)}}return{getHtmlElement:g}}();PDFJS.AnnotationUtils=sa;var ta={fontStyle:"normal",fontWeight:"normal",fillColor:"#000000"},ua=function(){function a(a,b,c){for(var d=-1,e=b;c>e;e++){var f=255&(d^a[e]),h=g[f];d=d>>>8^h}return-1^d}function b(b,c,d,e){var f=e,g=c.length;d[f]=g>>24&255,d[f+1]=g>>16&255,d[f+2]=g>>8&255,d[f+3]=255&g,f+=4,d[f]=255&b.charCodeAt(0),d[f+1]=255&b.charCodeAt(1),d[f+2]=255&b.charCodeAt(2),d[f+3]=255&b.charCodeAt(3),f+=4,d.set(c,f),f+=c.length;var h=a(d,e+4,f);d[f]=h>>24&255,d[f+1]=h>>16&255,d[f+2]=h>>8&255,d[f+3]=255&h}function c(a,b,c){for(var d=1,e=0,f=b;c>f;++f)d=(d+(255&a[f]))%65521,e=(e+d)%65521;return e<<16|d}function d(a,d){var g,h,i,j=a.width,k=a.height,l=a.data;switch(d){case D.GRAYSCALE_1BPP:h=0,g=1,i=j+7>>3;break;case D.RGB_24BPP:h=2,g=8,i=3*j;break;case D.RGBA_32BPP:h=6,g=8,i=4*j;break;default:throw new Error("invalid format")}var m,n,o=new Uint8Array((1+i)*k),p=0,q=0;for(m=0;k>m;++m)o[p++]=0,o.set(l.subarray(q,q+i),p),q+=i,p+=i;if(d===D.GRAYSCALE_1BPP)for(p=0,m=0;k>m;m++)for(p++,n=0;i>n;n++)o[p++]^=255;var r=new Uint8Array([j>>24&255,j>>16&255,j>>8&255,255&j,k>>24&255,k>>16&255,k>>8&255,255&k,g,h,0,0,0]),s=o.length,t=65535,u=Math.ceil(s/t),v=new Uint8Array(2+s+5*u+4),w=0;v[w++]=120,v[w++]=156;for(var x=0;s>t;)v[w++]=0,v[w++]=255,v[w++]=255,v[w++]=0,v[w++]=0,v.set(o.subarray(x,x+t),w),w+=t,x+=t,s-=t;v[w++]=1,v[w++]=255&s,v[w++]=s>>8&255,v[w++]=65535&~s&255,v[w++]=(65535&~s)>>8&255,v.set(o.subarray(x),w),w+=o.length-x;var y=c(o,0,o.length);v[w++]=y>>24&255,v[w++]=y>>16&255,v[w++]=y>>8&255,v[w++]=255&y;var z=e.length+3*f+r.length+v.length,A=new Uint8Array(z),B=0;return A.set(e,B),B+=e.length,b("IHDR",r,A,B),B+=f+r.length,b("IDATA",v,A,B),B+=f+v.length,b("IEND",new Uint8Array(0),A,B),
-end:1791},{begin:1984,end:2047},{begin:2304,end:2431},{begin:2432,end:2559},{begin:2560,end:2687},{begin:2688,end:2815},{begin:2816,end:2943},{begin:2944,end:3071},{begin:3072,end:3199},{begin:3200,end:3327},{begin:3328,end:3455},{begin:3584,end:3711},{begin:3712,end:3839},{begin:4256,end:4351},{begin:6912,end:7039},{begin:4352,end:4607},{begin:7680,end:7935},{begin:7936,end:8191},{begin:8192,end:8303},{begin:8304,end:8351},{begin:8352,end:8399},{begin:8400,end:8447},{begin:8448,end:8527},{begin:8528,end:8591},{begin:8592,end:8703},{begin:8704,end:8959},{begin:8960,end:9215},{begin:9216,end:9279},{begin:9280,end:9311},{begin:9312,end:9471},{begin:9472,end:9599},{begin:9600,end:9631},{begin:9632,end:9727},{begin:9728,end:9983},{begin:9984,end:10175},{begin:12288,end:12351},{begin:12352,end:12447},{begin:12448,end:12543},{begin:12544,end:12591},{begin:12592,end:12687},{begin:43072,end:43135},{begin:12800,end:13055},{begin:13056,end:13311},{begin:44032,end:55215},{begin:55296,end:57343},{begin:67840,end:67871},{begin:19968,end:40959},{begin:57344,end:63743},{begin:12736,end:12783},{begin:64256,end:64335},{begin:64336,end:65023},{begin:65056,end:65071},{begin:65040,end:65055},{begin:65104,end:65135},{begin:65136,end:65279},{begin:65280,end:65519},{begin:65520,end:65535},{begin:3840,end:4095},{begin:1792,end:1871},{begin:1920,end:1983},{begin:3456,end:3583},{begin:4096,end:4255},{begin:4608,end:4991},{begin:5024,end:5119},{begin:5120,end:5759},{begin:5760,end:5791},{begin:5792,end:5887},{begin:6016,end:6143},{begin:6144,end:6319},{begin:10240,end:10495},{begin:40960,end:42127},{begin:5888,end:5919},{begin:66304,end:66351},{begin:66352,end:66383},{begin:66560,end:66639},{begin:118784,end:119039},{begin:119808,end:120831},{begin:1044480,end:1048573},{begin:65024,end:65039},{begin:917504,end:917631},{begin:6400,end:6479},{begin:6480,end:6527},{begin:6528,end:6623},{begin:6656,end:6687},{begin:11264,end:11359},{begin:11568,end:11647},{begin:19904,end:19967},{begin:43008,end:43055},{begin:65536,end:65663},{begin:65856,end:65935},{begin:66432,end:66463},{begin:66464,end:66527},{begin:66640,end:66687},{begin:66688,end:66735},{begin:67584,end:67647},{begin:68096,end:68191},{begin:119552,end:119647},{begin:73728,end:74751},{begin:119648,end:119679},{begin:7040,end:7103},{begin:7168,end:7247},{begin:7248,end:7295},{begin:43136,end:43231},{begin:43264,end:43311},{begin:43312,end:43359},{begin:43520,end:43615},{begin:65936,end:65999},{begin:66e3,end:66047},{begin:66208,end:66271},{begin:127024,end:127135}],Yb=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"],Zb={"¨":" ̈","¯":" ̄","´":" ́","µ":"μ","¸":" ̧","Ĳ":"IJ","ĳ":"ij","Ŀ":"L·","ŀ":"l·","ŉ":"ʼn","ſ":"s","Ǆ":"DŽ","ǅ":"Dž","ǆ":"dž","Ǉ":"LJ","ǈ":"Lj","ǉ":"lj","Ǌ":"NJ","ǋ":"Nj","ǌ":"nj","Ǳ":"DZ","ǲ":"Dz","ǳ":"dz","˘":" ̆","˙":" ̇","˚":" ̊","˛":" ̨","˜":" ̃","˝":" ̋","ͺ":" ͅ","΄":" ́","ϐ":"β","ϑ":"θ","ϒ":"Υ","ϕ":"φ","ϖ":"π","ϰ":"κ","ϱ":"ρ","ϲ":"ς","ϴ":"Θ","ϵ":"ε","Ϲ":"Σ","և":"եւ","ٵ":"اٴ","ٶ":"وٴ","ٷ":"ۇٴ","ٸ":"يٴ","ำ":"ํา","ຳ":"ໍາ","ໜ":"ຫນ","ໝ":"ຫມ","ཷ":"ྲཱྀ","ཹ":"ླཱྀ","ẚ":"aʾ","᾽":" ̓","᾿":" ̓","῀":" ͂","῾":" ̔"," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" ","‗":" ̳","․":".","‥":"..","…":"...","″":"′′","‴":"′′′","‶":"‵‵","‷":"‵‵‵","‼":"!!","‾":" ̅","⁇":"??","⁈":"?!","⁉":"!?","⁗":"′′′′"," ":" ","₨":"Rs","℀":"a/c","℁":"a/s","℃":"°C","℅":"c/o","℆":"c/u","ℇ":"Ɛ","℉":"°F","№":"No","℡":"TEL","ℵ":"א","ℶ":"ב","ℷ":"ג","ℸ":"ד","℻":"FAX","Ⅰ":"I","Ⅱ":"II","Ⅲ":"III","Ⅳ":"IV","Ⅴ":"V","Ⅵ":"VI","Ⅶ":"VII","Ⅷ":"VIII","Ⅸ":"IX","Ⅹ":"X","Ⅺ":"XI","Ⅻ":"XII","Ⅼ":"L","Ⅽ":"C","Ⅾ":"D","Ⅿ":"M","ⅰ":"i","ⅱ":"ii","ⅲ":"iii","ⅳ":"iv","ⅴ":"v","ⅵ":"vi","ⅶ":"vii","ⅷ":"viii","ⅸ":"ix","ⅹ":"x","ⅺ":"xi","ⅻ":"xii","ⅼ":"l","ⅽ":"c","ⅾ":"d","ⅿ":"m","∬":"∫∫","∭":"∫∫∫","∯":"∮∮","∰":"∮∮∮","⑴":"(1)","⑵":"(2)","⑶":"(3)","⑷":"(4)","⑸":"(5)","⑹":"(6)","⑺":"(7)","⑻":"(8)","⑼":"(9)","⑽":"(10)","⑾":"(11)","⑿":"(12)","⒀":"(13)","⒁":"(14)","⒂":"(15)","⒃":"(16)","⒄":"(17)","⒅":"(18)","⒆":"(19)","⒇":"(20)","⒈":"1.","⒉":"2.","⒊":"3.","⒋":"4.","⒌":"5.","⒍":"6.","⒎":"7.","⒏":"8.","⒐":"9.","⒑":"10.","⒒":"11.","⒓":"12.","⒔":"13.","⒕":"14.","⒖":"15.","⒗":"16.","⒘":"17.","⒙":"18.","⒚":"19.","⒛":"20.","⒜":"(a)","⒝":"(b)","⒞":"(c)","⒟":"(d)","⒠":"(e)","⒡":"(f)","⒢":"(g)","⒣":"(h)","⒤":"(i)","⒥":"(j)","⒦":"(k)","⒧":"(l)","⒨":"(m)","⒩":"(n)","⒪":"(o)","⒫":"(p)","⒬":"(q)","⒭":"(r)","⒮":"(s)","⒯":"(t)","⒰":"(u)","⒱":"(v)","⒲":"(w)","⒳":"(x)","⒴":"(y)","⒵":"(z)","⨌":"∫∫∫∫","⩴":"::=","⩵":"==","⩶":"===","⺟":"母","⻳":"龟","⼀":"一","⼁":"丨","⼂":"丶","⼃":"丿","⼄":"乙","⼅":"亅","⼆":"二","⼇":"亠","⼈":"人","⼉":"儿","⼊":"入","⼋":"八","⼌":"冂","⼍":"冖","⼎":"冫","⼏":"几","⼐":"凵","⼑":"刀","⼒":"力","⼓":"勹","⼔":"匕","⼕":"匚","⼖":"匸","⼗":"十","⼘":"卜","⼙":"卩","⼚":"厂","⼛":"厶","⼜":"又","⼝":"口","⼞":"囗","⼟":"土","⼠":"士","⼡":"夂","⼢":"夊","⼣":"夕","⼤":"大","⼥":"女","⼦":"子","⼧":"宀","⼨":"寸","⼩":"小","⼪":"尢","⼫":"尸","⼬":"屮","⼭":"山","⼮":"巛","⼯":"工","⼰":"己","⼱":"巾","⼲":"干","⼳":"幺","⼴":"广","⼵":"廴","⼶":"廾","⼷":"弋","⼸":"弓","⼹":"彐","⼺":"彡","⼻":"彳","⼼":"心","⼽":"戈","⼾":"戶","⼿":"手","⽀":"支","⽁":"攴","⽂":"文","⽃":"斗","⽄":"斤","⽅":"方","⽆":"无","⽇":"日","⽈":"曰","⽉":"月","⽊":"木","⽋":"欠","⽌":"止","⽍":"歹","⽎":"殳","⽏":"毋","⽐":"比","⽑":"毛","⽒":"氏","⽓":"气","⽔":"水","⽕":"火","⽖":"爪","⽗":"父","⽘":"爻","⽙":"爿","⽚":"片","⽛":"牙","⽜":"牛","⽝":"犬","⽞":"玄","⽟":"玉","⽠":"瓜","⽡":"瓦","⽢":"甘","⽣":"生","⽤":"用","⽥":"田","⽦":"疋","⽧":"疒","⽨":"癶","⽩":"白","⽪":"皮","⽫":"皿","⽬":"目","⽭":"矛","⽮":"矢","⽯":"石","⽰":"示","⽱":"禸","⽲":"禾","⽳":"穴","⽴":"立","⽵":"竹","⽶":"米","⽷":"糸","⽸":"缶","⽹":"网","⽺":"羊","⽻":"羽","⽼":"老","⽽":"而","⽾":"耒","⽿":"耳","⾀":"聿","⾁":"肉","⾂":"臣","⾃":"自","⾄":"至","⾅":"臼","⾆":"舌","⾇":"舛","⾈":"舟","⾉":"艮","⾊":"色","⾋":"艸","⾌":"虍","⾍":"虫","⾎":"血","⾏":"行","⾐":"衣","⾑":"襾","⾒":"見","⾓":"角","⾔":"言","⾕":"谷","⾖":"豆","⾗":"豕","⾘":"豸","⾙":"貝","⾚":"赤","⾛":"走","⾜":"足","⾝":"身","⾞":"車","⾟":"辛","⾠":"辰","⾡":"辵","⾢":"邑","⾣":"酉","⾤":"釆","⾥":"里","⾦":"金","⾧":"長","⾨":"門","⾩":"阜","⾪":"隶","⾫":"隹","⾬":"雨","⾭":"靑","⾮":"非","⾯":"面","⾰":"革","⾱":"韋","⾲":"韭","⾳":"音","⾴":"頁","⾵":"風","⾶":"飛","⾷":"食","⾸":"首","⾹":"香","⾺":"馬","⾻":"骨","⾼":"高","⾽":"髟","⾾":"鬥","⾿":"鬯","⿀":"鬲","⿁":"鬼","⿂":"魚","⿃":"鳥","⿄":"鹵","⿅":"鹿","⿆":"麥","⿇":"麻","⿈":"黃","⿉":"黍","⿊":"黑","⿋":"黹","⿌":"黽","⿍":"鼎","⿎":"鼓","⿏":"鼠","⿐":"鼻","⿑":"齊","⿒":"齒","⿓":"龍","⿔":"龜","⿕":"龠","〶":"〒","〸":"十","〹":"卄","〺":"卅","゛":" ゙","゜":" ゚","ㄱ":"ᄀ","ㄲ":"ᄁ","ㄳ":"ᆪ","ㄴ":"ᄂ","ㄵ":"ᆬ","ㄶ":"ᆭ","ㄷ":"ᄃ","ㄸ":"ᄄ","ㄹ":"ᄅ","ㄺ":"ᆰ","ㄻ":"ᆱ","ㄼ":"ᆲ","ㄽ":"ᆳ","ㄾ":"ᆴ","ㄿ":"ᆵ","ㅀ":"ᄚ","ㅁ":"ᄆ","ㅂ":"ᄇ","ㅃ":"ᄈ","ㅄ":"ᄡ","ㅅ":"ᄉ","ㅆ":"ᄊ","ㅇ":"ᄋ","ㅈ":"ᄌ","ㅉ":"ᄍ","ㅊ":"ᄎ","ㅋ":"ᄏ","ㅌ":"ᄐ","ㅍ":"ᄑ","ㅎ":"ᄒ","ㅏ":"ᅡ","ㅐ":"ᅢ","ㅑ":"ᅣ","ㅒ":"ᅤ","ㅓ":"ᅥ","ㅔ":"ᅦ","ㅕ":"ᅧ","ㅖ":"ᅨ","ㅗ":"ᅩ","ㅘ":"ᅪ","ㅙ":"ᅫ","ㅚ":"ᅬ","ㅛ":"ᅭ","ㅜ":"ᅮ","ㅝ":"ᅯ","ㅞ":"ᅰ","ㅟ":"ᅱ","ㅠ":"ᅲ","ㅡ":"ᅳ","ㅢ":"ᅴ","ㅣ":"ᅵ","ㅤ":"ᅠ","ㅥ":"ᄔ","ㅦ":"ᄕ","ㅧ":"ᇇ","ㅨ":"ᇈ","ㅩ":"ᇌ","ㅪ":"ᇎ","ㅫ":"ᇓ","ㅬ":"ᇗ","ㅭ":"ᇙ","ㅮ":"ᄜ","ㅯ":"ᇝ","ㅰ":"ᇟ","ㅱ":"ᄝ","ㅲ":"ᄞ","ㅳ":"ᄠ","ㅴ":"ᄢ","ㅵ":"ᄣ","ㅶ":"ᄧ","ㅷ":"ᄩ","ㅸ":"ᄫ","ㅹ":"ᄬ","ㅺ":"ᄭ","ㅻ":"ᄮ","ㅼ":"ᄯ","ㅽ":"ᄲ","ㅾ":"ᄶ","ㅿ":"ᅀ","ㆀ":"ᅇ","ㆁ":"ᅌ","ㆂ":"ᇱ","ㆃ":"ᇲ","ㆄ":"ᅗ","ㆅ":"ᅘ","ㆆ":"ᅙ","ㆇ":"ᆄ","ㆈ":"ᆅ","ㆉ":"ᆈ","ㆊ":"ᆑ","ㆋ":"ᆒ","ㆌ":"ᆔ","ㆍ":"ᆞ","ㆎ":"ᆡ","㈀":"(ᄀ)","㈁":"(ᄂ)","㈂":"(ᄃ)","㈃":"(ᄅ)","㈄":"(ᄆ)","㈅":"(ᄇ)","㈆":"(ᄉ)","㈇":"(ᄋ)","㈈":"(ᄌ)","㈉":"(ᄎ)","㈊":"(ᄏ)","㈋":"(ᄐ)","㈌":"(ᄑ)","㈍":"(ᄒ)","㈎":"(가)","㈏":"(나)","㈐":"(다)","㈑":"(라)","㈒":"(마)","㈓":"(바)","㈔":"(사)","㈕":"(아)","㈖":"(자)","㈗":"(차)","㈘":"(카)","㈙":"(타)","㈚":"(파)","㈛":"(하)","㈜":"(주)","㈝":"(오전)","㈞":"(오후)","㈠":"(一)","㈡":"(二)","㈢":"(三)","㈣":"(四)","㈤":"(五)","㈥":"(六)","㈦":"(七)","㈧":"(八)","㈨":"(九)","㈩":"(十)","㈪":"(月)","㈫":"(火)","㈬":"(水)","㈭":"(木)","㈮":"(金)","㈯":"(土)","㈰":"(日)","㈱":"(株)","㈲":"(有)","㈳":"(社)","㈴":"(名)","㈵":"(特)","㈶":"(財)","㈷":"(祝)","㈸":"(労)","㈹":"(代)","㈺":"(呼)","㈻":"(学)","㈼":"(監)","㈽":"(企)","㈾":"(資)","㈿":"(協)","㉀":"(祭)","㉁":"(休)","㉂":"(自)","㉃":"(至)","㋀":"1月","㋁":"2月","㋂":"3月","㋃":"4月","㋄":"5月","㋅":"6月","㋆":"7月","㋇":"8月","㋈":"9月","㋉":"10月","㋊":"11月","㋋":"12月","㍘":"0点","㍙":"1点","㍚":"2点","㍛":"3点","㍜":"4点","㍝":"5点","㍞":"6点","㍟":"7点","㍠":"8点","㍡":"9点","㍢":"10点","㍣":"11点","㍤":"12点","㍥":"13点","㍦":"14点","㍧":"15点","㍨":"16点","㍩":"17点","㍪":"18点","㍫":"19点","㍬":"20点","㍭":"21点","㍮":"22点","㍯":"23点","㍰":"24点","㏠":"1日","㏡":"2日","㏢":"3日","㏣":"4日","㏤":"5日","㏥":"6日","㏦":"7日","㏧":"8日","㏨":"9日","㏩":"10日","㏪":"11日","㏫":"12日","㏬":"13日","㏭":"14日","㏮":"15日","㏯":"16日","㏰":"17日","㏱":"18日","㏲":"19日","㏳":"20日","㏴":"21日","㏵":"22日","㏶":"23日","㏷":"24日","㏸":"25日","㏹":"26日","㏺":"27日","㏻":"28日","㏼":"29日","㏽":"30日","㏾":"31日","ﬀ":"ff","ﬁ":"fi","ﬂ":"fl","ﬃ":"ffi","ﬄ":"ffl","ﬅ":"ſt","ﬆ":"st","ﬓ":"մն","ﬔ":"մե","ﬕ":"մի","ﬖ":"վն","ﬗ":"մխ","ﭏ":"אל","ﭐ":"ٱ","ﭑ":"ٱ","ﭒ":"ٻ","ﭓ":"ٻ","ﭔ":"ٻ","ﭕ":"ٻ","ﭖ":"پ","ﭗ":"پ","ﭘ":"پ","ﭙ":"پ","ﭚ":"ڀ","ﭛ":"ڀ","ﭜ":"ڀ","ﭝ":"ڀ","ﭞ":"ٺ","ﭟ":"ٺ","ﭠ":"ٺ","ﭡ":"ٺ","ﭢ":"ٿ","ﭣ":"ٿ","ﭤ":"ٿ","ﭥ":"ٿ","ﭦ":"ٹ","ﭧ":"ٹ","ﭨ":"ٹ","ﭩ":"ٹ","ﭪ":"ڤ","ﭫ":"ڤ","ﭬ":"ڤ","ﭭ":"ڤ","ﭮ":"ڦ","ﭯ":"ڦ","ﭰ":"ڦ","ﭱ":"ڦ","ﭲ":"ڄ","ﭳ":"ڄ","ﭴ":"ڄ","ﭵ":"ڄ","ﭶ":"ڃ","ﭷ":"ڃ","ﭸ":"ڃ","ﭹ":"ڃ","ﭺ":"چ","ﭻ":"چ","ﭼ":"چ","ﭽ":"چ","ﭾ":"ڇ","ﭿ":"ڇ","ﮀ":"ڇ","ﮁ":"ڇ","ﮂ":"ڍ","ﮃ":"ڍ","ﮄ":"ڌ","ﮅ":"ڌ","ﮆ":"ڎ","ﮇ":"ڎ","ﮈ":"ڈ","ﮉ":"ڈ","ﮊ":"ژ","ﮋ":"ژ","ﮌ":"ڑ","ﮍ":"ڑ","ﮎ":"ک","ﮏ":"ک","ﮐ":"ک","ﮑ":"ک","ﮒ":"گ","ﮓ":"گ","ﮔ":"گ","ﮕ":"گ","ﮖ":"ڳ","ﮗ":"ڳ","ﮘ":"ڳ","ﮙ":"ڳ","ﮚ":"ڱ","ﮛ":"ڱ","ﮜ":"ڱ","ﮝ":"ڱ","ﮞ":"ں","ﮟ":"ں","ﮠ":"ڻ","ﮡ":"ڻ","ﮢ":"ڻ","ﮣ":"ڻ","ﮤ":"ۀ","ﮥ":"ۀ","ﮦ":"ہ","ﮧ":"ہ","ﮨ":"ہ","ﮩ":"ہ","ﮪ":"ھ","ﮫ":"ھ","ﮬ":"ھ","ﮭ":"ھ","ﮮ":"ے","ﮯ":"ے","ﮰ":"ۓ","ﮱ":"ۓ","ﯓ":"ڭ","ﯔ":"ڭ","ﯕ":"ڭ","ﯖ":"ڭ","ﯗ":"ۇ","ﯘ":"ۇ","ﯙ":"ۆ","ﯚ":"ۆ","ﯛ":"ۈ","ﯜ":"ۈ","ﯝ":"ٷ","ﯞ":"ۋ","ﯟ":"ۋ","ﯠ":"ۅ","ﯡ":"ۅ","ﯢ":"ۉ","ﯣ":"ۉ","ﯤ":"ې","ﯥ":"ې","ﯦ":"ې","ﯧ":"ې","ﯨ":"ى","ﯩ":"ى","ﯪ":"ئا","ﯫ":"ئا","ﯬ":"ئە","ﯭ":"ئە","ﯮ":"ئو","ﯯ":"ئو","ﯰ":"ئۇ","ﯱ":"ئۇ","ﯲ":"ئۆ","ﯳ":"ئۆ","ﯴ":"ئۈ","ﯵ":"ئۈ","ﯶ":"ئې","ﯷ":"ئې","ﯸ":"ئې","ﯹ":"ئى","ﯺ":"ئى","ﯻ":"ئى","ﯼ":"ی","ﯽ":"ی","ﯾ":"ی","ﯿ":"ی","ﰀ":"ئج","ﰁ":"ئح","ﰂ":"ئم","ﰃ":"ئى","ﰄ":"ئي","ﰅ":"بج","ﰆ":"بح","ﰇ":"بخ","ﰈ":"بم","ﰉ":"بى","ﰊ":"بي","ﰋ":"تج","ﰌ":"تح","ﰍ":"تخ","ﰎ":"تم","ﰏ":"تى","ﰐ":"تي","ﰑ":"ثج","ﰒ":"ثم","ﰓ":"ثى","ﰔ":"ثي","ﰕ":"جح","ﰖ":"جم","ﰗ":"حج","ﰘ":"حم","ﰙ":"خج","ﰚ":"خح","ﰛ":"خم","ﰜ":"سج","ﰝ":"سح","ﰞ":"سخ","ﰟ":"سم","ﰠ":"صح","ﰡ":"صم","ﰢ":"ضج","ﰣ":"ضح","ﰤ":"ضخ","ﰥ":"ضم","ﰦ":"طح","ﰧ":"طم","ﰨ":"ظم","ﰩ":"عج","ﰪ":"عم","ﰫ":"غج","ﰬ":"غم","ﰭ":"فج","ﰮ":"فح","ﰯ":"فخ","ﰰ":"فم","ﰱ":"فى","ﰲ":"في","ﰳ":"قح","ﰴ":"قم","ﰵ":"قى","ﰶ":"قي","ﰷ":"كا","ﰸ":"كج","ﰹ":"كح","ﰺ":"كخ","ﰻ":"كل","ﰼ":"كم","ﰽ":"كى","ﰾ":"كي","ﰿ":"لج","ﱀ":"لح","ﱁ":"لخ","ﱂ":"لم","ﱃ":"لى","ﱄ":"لي","ﱅ":"مج","ﱆ":"مح","ﱇ":"مخ","ﱈ":"مم","ﱉ":"مى","ﱊ":"مي","ﱋ":"نج","ﱌ":"نح","ﱍ":"نخ","ﱎ":"نم","ﱏ":"نى","ﱐ":"ني","ﱑ":"هج","ﱒ":"هم","ﱓ":"هى","ﱔ":"هي","ﱕ":"يج","ﱖ":"يح","ﱗ":"يخ","ﱘ":"يم","ﱙ":"يى","ﱚ":"يي","ﱛ":"ذٰ","ﱜ":"رٰ","ﱝ":"ىٰ","ﱞ":" ٌّ","ﱟ":" ٍّ","ﱠ":" َّ","ﱡ":" ُّ","ﱢ":" ِّ","ﱣ":" ّٰ","ﱤ":"ئر","ﱥ":"ئز","ﱦ":"ئم","ﱧ":"ئن","ﱨ":"ئى","ﱩ":"ئي","ﱪ":"بر","ﱫ":"بز","ﱬ":"بم","ﱭ":"بن","ﱮ":"بى","ﱯ":"بي","ﱰ":"تر","ﱱ":"تز","ﱲ":"تم","ﱳ":"تن","ﱴ":"تى","ﱵ":"تي","ﱶ":"ثر","ﱷ":"ثز","ﱸ":"ثم","ﱹ":"ثن","ﱺ":"ثى","ﱻ":"ثي","ﱼ":"فى","ﱽ":"في","ﱾ":"قى","ﱿ":"قي","ﲀ":"كا","ﲁ":"كل","ﲂ":"كم","ﲃ":"كى","ﲄ":"كي","ﲅ":"لم","ﲆ":"لى","ﲇ":"لي","ﲈ":"ما","ﲉ":"مم","ﲊ":"نر","ﲋ":"نز","ﲌ":"نم","ﲍ":"نن","ﲎ":"نى","ﲏ":"ني","ﲐ":"ىٰ","ﲑ":"ير","ﲒ":"يز","ﲓ":"يم","ﲔ":"ين","ﲕ":"يى","ﲖ":"يي","ﲗ":"ئج","ﲘ":"ئح","ﲙ":"ئخ","ﲚ":"ئم","ﲛ":"ئه","ﲜ":"بج","ﲝ":"بح","ﲞ":"بخ","ﲟ":"بم","ﲠ":"به","ﲡ":"تج","ﲢ":"تح","ﲣ":"تخ","ﲤ":"تم","ﲥ":"ته","ﲦ":"ثم","ﲧ":"جح","ﲨ":"جم","ﲩ":"حج","ﲪ":"حم","ﲫ":"خج","ﲬ":"خم","ﲭ":"سج","ﲮ":"سح","ﲯ":"سخ","ﲰ":"سم","ﲱ":"صح","ﲲ":"صخ","ﲳ":"صم","ﲴ":"ضج","ﲵ":"ضح","ﲶ":"ضخ","ﲷ":"ضم","ﲸ":"طح","ﲹ":"ظم","ﲺ":"عج","ﲻ":"عم","ﲼ":"غج","ﲽ":"غم","ﲾ":"فج","ﲿ":"فح","ﳀ":"فخ","ﳁ":"فم","ﳂ":"قح","ﳃ":"قم","ﳄ":"كج","ﳅ":"كح","ﳆ":"كخ","ﳇ":"كل","ﳈ":"كم","ﳉ":"لج","ﳊ":"لح","ﳋ":"لخ","ﳌ":"لم","ﳍ":"له","ﳎ":"مج","ﳏ":"مح","ﳐ":"مخ","ﳑ":"مم","ﳒ":"نج","ﳓ":"نح","ﳔ":"نخ","ﳕ":"نم","ﳖ":"نه","ﳗ":"هج","ﳘ":"هم","ﳙ":"هٰ","ﳚ":"يج","ﳛ":"يح","ﳜ":"يخ","ﳝ":"يم","ﳞ":"يه","ﳟ":"ئم","ﳠ":"ئه","ﳡ":"بم","ﳢ":"به","ﳣ":"تم","ﳤ":"ته","ﳥ":"ثم","ﳦ":"ثه","ﳧ":"سم","ﳨ":"سه","ﳩ":"شم","ﳪ":"شه","ﳫ":"كل","ﳬ":"كم","ﳭ":"لم","ﳮ":"نم","ﳯ":"نه","ﳰ":"يم","ﳱ":"يه","ﳲ":"ـَّ","ﳳ":"ـُّ","ﳴ":"ـِّ","ﳵ":"طى","ﳶ":"طي","ﳷ":"عى","ﳸ":"عي","ﳹ":"غى","ﳺ":"غي","ﳻ":"سى","ﳼ":"سي","ﳽ":"شى","ﳾ":"شي","ﳿ":"حى","ﴀ":"حي","ﴁ":"جى","ﴂ":"جي","ﴃ":"خى","ﴄ":"خي","ﴅ":"صى","ﴆ":"صي","ﴇ":"ضى","ﴈ":"ضي","ﴉ":"شج","ﴊ":"شح","ﴋ":"شخ","ﴌ":"شم","ﴍ":"شر","ﴎ":"سر","ﴏ":"صر","ﴐ":"ضر","ﴑ":"طى","ﴒ":"طي","ﴓ":"عى","ﴔ":"عي","ﴕ":"غى","ﴖ":"غي","ﴗ":"سى","ﴘ":"سي","ﴙ":"شى","ﴚ":"شي","ﴛ":"حى","ﴜ":"حي","ﴝ":"جى","ﴞ":"جي","ﴟ":"خى","ﴠ":"خي","ﴡ":"صى","ﴢ":"صي","ﴣ":"ضى","ﴤ":"ضي","ﴥ":"شج","ﴦ":"شح","ﴧ":"شخ","ﴨ":"شم","ﴩ":"شر","ﴪ":"سر","ﴫ":"صر","ﴬ":"ضر","ﴭ":"شج","ﴮ":"شح","ﴯ":"شخ","ﴰ":"شم","ﴱ":"سه","ﴲ":"شه","ﴳ":"طم","ﴴ":"سج","ﴵ":"سح","ﴶ":"سخ","ﴷ":"شج","ﴸ":"شح","ﴹ":"شخ","ﴺ":"طم","ﴻ":"ظم","ﴼ":"اً","ﴽ":"اً","ﵐ":"تجم","ﵑ":"تحج","ﵒ":"تحج","ﵓ":"تحم","ﵔ":"تخم","ﵕ":"تمج","ﵖ":"تمح","ﵗ":"تمخ","ﵘ":"جمح","ﵙ":"جمح","ﵚ":"حمي","ﵛ":"حمى","ﵜ":"سحج","ﵝ":"سجح","ﵞ":"سجى","ﵟ":"سمح","ﵠ":"سمح","ﵡ":"سمج","ﵢ":"سمم","ﵣ":"سمم","ﵤ":"صحح","ﵥ":"صحح","ﵦ":"صمم","ﵧ":"شحم","ﵨ":"شحم","ﵩ":"شجي","ﵪ":"شمخ","ﵫ":"شمخ","ﵬ":"شمم","ﵭ":"شمم","ﵮ":"ضحى","ﵯ":"ضخم","ﵰ":"ضخم","ﵱ":"طمح","ﵲ":"طمح","ﵳ":"طمم","ﵴ":"طمي","ﵵ":"عجم","ﵶ":"عمم","ﵷ":"عمم","ﵸ":"عمى","ﵹ":"غمم","ﵺ":"غمي","ﵻ":"غمى","ﵼ":"فخم","ﵽ":"فخم","ﵾ":"قمح","ﵿ":"قمم","ﶀ":"لحم","ﶁ":"لحي","ﶂ":"لحى","ﶃ":"لجج","ﶄ":"لجج","ﶅ":"لخم","ﶆ":"لخم","ﶇ":"لمح","ﶈ":"لمح","ﶉ":"محج","ﶊ":"محم","ﶋ":"محي","ﶌ":"مجح","ﶍ":"مجم","ﶎ":"مخج","ﶏ":"مخم","ﶒ":"مجخ","ﶓ":"همج","ﶔ":"همم","ﶕ":"نحم","ﶖ":"نحى","ﶗ":"نجم","ﶘ":"نجم","ﶙ":"نجى","ﶚ":"نمي","ﶛ":"نمى","ﶜ":"يمم","ﶝ":"يمم","ﶞ":"بخي","ﶟ":"تجي","ﶠ":"تجى","ﶡ":"تخي","ﶢ":"تخى","ﶣ":"تمي","ﶤ":"تمى","ﶥ":"جمي","ﶦ":"جحى","ﶧ":"جمى","ﶨ":"سخى","ﶩ":"صحي","ﶪ":"شحي","ﶫ":"ضحي","ﶬ":"لجي","ﶭ":"لمي","ﶮ":"يحي","ﶯ":"يجي","ﶰ":"يمي","ﶱ":"ممي","ﶲ":"قمي","ﶳ":"نحي","ﶴ":"قمح","ﶵ":"لحم","ﶶ":"عمي","ﶷ":"كمي","ﶸ":"نجح","ﶹ":"مخي","ﶺ":"لجم","ﶻ":"كمم","ﶼ":"لجم","ﶽ":"نجح","ﶾ":"جحي","ﶿ":"حجي","ﷀ":"مجي","ﷁ":"فمي","ﷂ":"بحي","ﷃ":"كمم","ﷄ":"عجم","ﷅ":"صمم","ﷆ":"سخي","ﷇ":"نجي","﹉":"‾","﹊":"‾","﹋":"‾","﹌":"‾","﹍":"_","﹎":"_","﹏":"_","ﺀ":"ء","ﺁ":"آ","ﺂ":"آ","ﺃ":"أ","ﺄ":"أ","ﺅ":"ؤ","ﺆ":"ؤ","ﺇ":"إ","ﺈ":"إ","ﺉ":"ئ","ﺊ":"ئ","ﺋ":"ئ","ﺌ":"ئ","ﺍ":"ا","ﺎ":"ا","ﺏ":"ب","ﺐ":"ب","ﺑ":"ب","ﺒ":"ب","ﺓ":"ة","ﺔ":"ة","ﺕ":"ت","ﺖ":"ت","ﺗ":"ت","ﺘ":"ت","ﺙ":"ث","ﺚ":"ث","ﺛ":"ث","ﺜ":"ث","ﺝ":"ج","ﺞ":"ج","ﺟ":"ج","ﺠ":"ج","ﺡ":"ح","ﺢ":"ح","ﺣ":"ح","ﺤ":"ح","ﺥ":"خ","ﺦ":"خ","ﺧ":"خ","ﺨ":"خ","ﺩ":"د","ﺪ":"د","ﺫ":"ذ","ﺬ":"ذ","ﺭ":"ر","ﺮ":"ر","ﺯ":"ز","ﺰ":"ز","ﺱ":"س","ﺲ":"س","ﺳ":"س","ﺴ":"س","ﺵ":"ش","ﺶ":"ش","ﺷ":"ش","ﺸ":"ش","ﺹ":"ص","ﺺ":"ص","ﺻ":"ص","ﺼ":"ص","ﺽ":"ض","ﺾ":"ض","ﺿ":"ض","ﻀ":"ض","ﻁ":"ط","ﻂ":"ط","ﻃ":"ط","ﻄ":"ط","ﻅ":"ظ","ﻆ":"ظ","ﻇ":"ظ","ﻈ":"ظ","ﻉ":"ع","ﻊ":"ع","ﻋ":"ع","ﻌ":"ع","ﻍ":"غ","ﻎ":"غ","ﻏ":"غ","ﻐ":"غ","ﻑ":"ف","ﻒ":"ف","ﻓ":"ف","ﻔ":"ف","ﻕ":"ق","ﻖ":"ق","ﻗ":"ق","ﻘ":"ق","ﻙ":"ك","ﻚ":"ك","ﻛ":"ك","ﻜ":"ك","ﻝ":"ل","ﻞ":"ل","ﻟ":"ل","ﻠ":"ل","ﻡ":"م","ﻢ":"م","ﻣ":"م","ﻤ":"م","ﻥ":"ن","ﻦ":"ن","ﻧ":"ن","ﻨ":"ن","ﻩ":"ه","ﻪ":"ه","ﻫ":"ه","ﻬ":"ه","ﻭ":"و","ﻮ":"و","ﻯ":"ى","ﻰ":"ى","ﻱ":"ي","ﻲ":"ي","ﻳ":"ي","ﻴ":"ي","ﻵ":"لآ","ﻶ":"لآ","ﻷ":"لأ","ﻸ":"لأ","ﻹ":"لإ","ﻺ":"لإ","ﻻ":"لا","ﻼ":"لا"},$b=function(){function a(a,b,c,d,e,f){this.fontChar=a,this.unicode=b,this.accent=c,this.width=d,this.vmetric=e,this.operatorListId=f}return a.prototype.matchesForCache=function(a,b,c,d,e,f){return this.fontChar===a&&this.unicode===b&&this.accent===c&&this.width===d&&this.vmetric===e&&this.operatorListId===f},a}(),_b=function(){function a(a){this._map=a}return a.prototype={get length(){return this._map.length},forEach:function(a){for(var b in this._map)a(b,this._map[b].charCodeAt(0))},has:function(a){return void 0!==this._map[a]},get:function(a){return this._map[a]},charCodeOf:function(a){return this._map.indexOf(a)}},a}(),ac=function(){function a(a,b){this.firstChar=a,this.lastChar=b}return a.prototype={get length(){return this.lastChar+1-this.firstChar},forEach:function(a){for(var b=this.firstChar,c=this.lastChar;c>=b;b++)a(b,b)},has:function(a){return this.firstChar<=a&&a<=this.lastChar},get:function(a){return this.firstChar<=a&&a<=this.lastChar?String.fromCharCode(a):void 0},charCodeOf:function(a){c("should not call .charCodeOf")}},a}(),bc=function(){function a(a,b,c){a[b]=c>>8&255,a[b+1]=255&c}function b(a,b,c){a[b]=c>>24&255,a[b+1]=c>>16&255,a[b+2]=c>>8&255,a[b+3]=255&c}function c(a,b,c){var d,e;if(c instanceof Uint8Array)a.set(c,b);else if("string"==typeof c)for(d=0,e=c.length;e>d;d++)a[b++]=255&c.charCodeAt(d);else for(d=0,e=c.length;e>d;d++)a[b++]=255&c[d]}function d(a){this.sfnt=a,this.tables=Object.create(null)}d.getSearchParams=function(a,b){for(var c=1,d=0;(c^a)>c;)c<<=1,d++;var e=c*b;return{range:e,entry:d,rangeShift:b*a-e}};var e=12,f=16;return d.prototype={toArray:function(){var g=this.sfnt,h=this.tables,i=Object.keys(h);i.sort();var j,l,m,n,o,p=i.length,q=e+p*f,r=[q];for(j=0;p>j;j++){n=h[i[j]];var s=(n.length+3&-4)>>>0;q+=s,r.push(q)}var t=new Uint8Array(q);for(j=0;p>j;j++)n=h[i[j]],c(t,r[j],n);"true"===g&&(g=k(65536)),t[0]=255&g.charCodeAt(0),t[1]=255&g.charCodeAt(1),t[2]=255&g.charCodeAt(2),t[3]=255&g.charCodeAt(3),a(t,4,p);var u=d.getSearchParams(p,16);for(a(t,6,u.range),a(t,8,u.entry),a(t,10,u.rangeShift),q=e,j=0;p>j;j++){o=i[j],t[q]=255&o.charCodeAt(0),t[q+1]=255&o.charCodeAt(1),t[q+2]=255&o.charCodeAt(2),t[q+3]=255&o.charCodeAt(3);var v=0;for(l=r[j],m=r[j+1];m>l;l+=4){var w=(t[l]<<24)+(t[l+1]<<16)+(t[l+2]<<8)+t[l+3];v=v+w|0}b(t,q+4,v),b(t,q+8,r[j]),b(t,q+12,h[o].length),q+=f}return t},addTable:function(a,b){if(a in this.tables)throw new Error("Table "+a+" already exists");this.tables[a]=b}},d}(),cc=new Int32Array([0,32,127,161,173,174,1536,1920,2208,4256,6016,6144,8192,8208,8209,8210,8232,8240,8287,8304,9676,9677,43616,43648,65520,65536]),dc=function(){function d(d,e,f){var g,h,i;this.name=d,this.loadedName=f.loadedName,this.isType3Font=f.isType3Font,this.sizes=[],this.glyphCache={};var j=d.split("+");j=j.length>1?j[1]:j[0],j=j.split(/[-,_]/g)[0],this.isSerifFont=!!(f.flags&Ob.Serif),this.isSymbolicFont=!!(f.flags&Ob.Symbolic),this.isMonospace=!!(f.flags&Ob.FixedPitch);var k=f.type,l=f.subtype;if(this.type=k,this.fallbackName=this.isMonospace?"monospace":this.isSerifFont?"serif":"sans-serif",this.differences=f.differences,this.widths=f.widths,this.defaultWidth=f.defaultWidth,this.composite=f.composite,this.wideChars=f.wideChars,this.cMap=f.cMap,this.ascent=f.ascent/Lb,this.descent=f.descent/Lb,this.fontMatrix=f.fontMatrix,this.bbox=f.bbox,this.toUnicode=f.toUnicode=this.buildToUnicode(f),this.toFontChar=[],"Type3"===f.type){for(g=0;256>g;g++)this.toFontChar[g]=this.differences[g]||f.defaultEncoding[g];return void(this.fontType=Z.TYPE3)}if(this.cidEncoding=f.cidEncoding,this.vertical=f.vertical,this.vertical&&(this.vmetrics=f.vmetrics,this.defaultVMetrics=f.defaultVMetrics),!e||e.isEmpty){e&&b('Font file is empty in "'+d+'" ('+this.loadedName+")"),this.missingFile=!0;var o=d.replace(/[,_]/g,"-"),p=!!Qb[o]||!(!Rb[o]||!Qb[Rb[o]]);if(o=Qb[o]||Rb[o]||o,this.bold=-1!==o.search(/bold/gi),this.italic=-1!==o.search(/oblique/gi)||-1!==o.search(/italic/gi),this.black=-1!==d.search(/Black/g),this.remeasure=Object.keys(this.widths).length>0,p&&"CIDFontType2"===k&&0===f.cidEncoding.indexOf("Identity-")){var q=[];for(g in Ub)q[+g]=Ub[g];if(/ArialBlack/i.test(d))for(g in Vb)q[+g]=Vb[g];var r=this.toUnicode instanceof ac;r||this.toUnicode.forEach(function(a,b){q[+a]=b}),this.toFontChar=q,this.toUnicode=new _b(q)}else if(/Symbol/i.test(o)){var s=Pb.SymbolSetEncoding;for(g in s)i=zc[s[g]],i&&(this.toFontChar[g]=i);for(g in f.differences)i=zc[f.differences[g]],i&&(this.toFontChar[g]=i)}else if(/Dingbats/i.test(o)){/Wingdings/i.test(d)&&b("Wingdings font without embedded font file, falling back to the ZapfDingbats encoding.");var t=Pb.ZapfDingbatsEncoding;for(g in t)i=Ac[t[g]],i&&(this.toFontChar[g]=i);for(g in f.differences)i=Ac[f.differences[g]],i&&(this.toFontChar[g]=i)}else if(p){this.toFontChar=[];for(g in f.defaultEncoding)h=f.differences[g]||f.defaultEncoding[g],this.toFontChar[g]=zc[h]}else{var u=-1===k.indexOf("CIDFontType");this.toUnicode.forEach(function(a,b){u&&(h=f.differences[a]||f.defaultEncoding[a],b=zc[h]||b),this.toFontChar[a]=b}.bind(this))}return this.loadedName=o.split("-")[0],this.loading=!1,void(this.fontType=P(k,l))}"Type1C"===l&&"Type1"!==k&&"MMType1"!==k&&(m(e)?l="TrueType":k="Type1"),"CIDFontType0C"===l&&"CIDFontType0"!==k&&(k="CIDFontType0"),"OpenType"===l&&(k="OpenType"),"CIDFontType0"===k&&(l=n(e)?"CIDFontType0":"CIDFontType0C");var v;switch(k){case"MMType1":a("MMType1 font ("+d+"), falling back to Type1.");case"Type1":case"CIDFontType0":this.mimetype="font/opentype";var w="Type1C"===l||"CIDFontType0C"===l?new jc(e,f):new ic(d,e,f);O(f),v=this.convert(d,w,f);break;case"OpenType":case"TrueType":case"CIDFontType2":this.mimetype="font/opentype",v=this.checkAndRepair(d,e,f),this.isOpenType&&(k="OpenType");break;default:c("Font "+k+" is not supported")}this.data=v,this.fontType=P(k,l),this.fontMatrix=f.fontMatrix,this.widths=f.widths,this.defaultWidth=f.defaultWidth,this.encoding=f.baseEncoding,this.seacMap=f.seacMap,this.loading=!0}function f(a,b){return(a<<8)+b}function h(a,b,c,d){return(a<<24)+(b<<16)+(c<<8)+d}function j(a){return String.fromCharCode(a>>8&255,255&a)}function l(a){return a=a>32767?32767:-32768>a?-32768:a,String.fromCharCode(a>>8&255,255&a)}function m(a){var b=a.peekBytes(4);return 65536===o(b,0)}function n(a){var b=a.peekBytes(2);return 37===b[0]&&33===b[1]?!0:128===b[0]&&1===b[1]?!0:!1}function p(a){for(var b=0,c=cc.length-1;c>b;){var d=b+c+1>>1;a<cc[d]?c=d-1:b=d}return!(1&b)}function q(a,b){var c=b.toUnicode,d=!!(b.flags&Ob.Symbolic),e=b.toUnicode instanceof ac,f=Object.create(null),g=[],h=[],i=Ib;for(var j in a){j|=0;var k=a[j],l=j;if(!e&&c.has(j)){var m=c.get(l);1===m.length&&(l=m.charCodeAt(0))}if((void 0!==h[l]||p(l)||d&&e)&&Jb>=i)do l=i++,Kb&&61440===l&&(l=61472,i=l+1);while(void 0!==h[l]&&Jb>=i);f[l]=k,g[j]=l,h[l]=!0}return{toFontChar:g,charCodeToGlyphId:f,nextAvailableFontCharCode:i}}function r(a){var b=[];for(var c in a)b.push({fontCharCode:0|c,glyphId:a[c]});b.sort(function(a,b){return a.fontCharCode-b.fontCharCode});for(var d=[],e=b.length,f=0;e>f;){var g=b[f].fontCharCode,h=[b[f].glyphId];++f;for(var i=g;e>f&&i+1===b[f].fontCharCode&&(h.push(b[f].glyphId),++i,++f,65535!==i););d.push([g,i,h])}return d}function s(a){var b,c,d,e,f=r(a),g=f[f.length-1][1]>65535?2:1,h="\x00\x00"+j(g)+"\x00\x00"+k(4+8*g);for(b=f.length-1;b>=0&&!(f[b][0]<=65535);--b);var i=b+1;f[b][0]<65535&&65535===f[b][1]&&(f[b][1]=65534);var l,m,n,o,p=f[b][1]<65535?1:0,q=i+p,s=bc.getSearchParams(q,2),t="",u="",v="",w="",x="",y=0;for(b=0,c=i;c>b;b++){l=f[b],m=l[0],n=l[1],t+=j(m),u+=j(n),o=l[2];var z=!0;for(d=1,e=o.length;e>d;++d)if(o[d]!==o[d-1]+1){z=!1;break}if(z){var A=o[0];v+=j(A-m&65535),w+=j(0)}else{var B=2*(q-b)+2*y;for(y+=n-m+1,v+=j(0),w+=j(B),d=0,e=o.length;e>d;++d)x+=j(o[d])}}p>0&&(u+="ÿÿ",t+="ÿÿ",v+="\x00",w+="\x00\x00");var C="\x00\x00"+j(2*q)+j(s.range)+j(s.entry)+j(s.rangeShift)+u+"\x00\x00"+t+v+w+x,D="",E="";if(g>1){for(h+="\x00\x00\n"+k(4+8*g+4+C.length),D="",b=0,c=f.length;c>b;b++){l=f[b],m=l[0],o=l[2];var F=o[0];for(d=1,e=o.length;e>d;++d)o[d]!==o[d-1]+1&&(n=l[0]+d-1,D+=k(m)+k(n)+k(F),m=n+1,F=o[d]);D+=k(m)+k(l[1])+k(F)}E="\x00\f\x00\x00"+k(D.length+16)+"\x00\x00\x00\x00"+k(D.length/12)}return h+"\x00"+j(C.length+4)+C+E+D}function t(a){var b=new Mc(a.data),c=b.getUint16();b.getBytes(60);var d=b.getUint16();if(4>c&&768&d)return!1;var e=b.getUint16(),f=b.getUint16();if(e>f)return!1;b.getBytes(6);var g=b.getUint16();return 0===g?!1:(a.data[8]=a.data[9]=0,!0)}function u(a,b,d){d=d||{unitsPerEm:0,yMax:0,yMin:0,ascent:0,descent:0};var e=0,f=0,g=0,h=0,i=null,l=0;if(b)for(var m in b){m|=0,(i>m||!i)&&(i=m),m>l&&(l=m);var n=L(m);32>n?e|=1<<n:64>n?f|=1<<n-32:96>n?g|=1<<n-64:123>n?h|=1<<n-96:c("Unicode ranges Bits > 123 are reserved for internal usage")}else i=0,l=255;var o=a.bbox||[0,0,0,0],p=d.unitsPerEm||1/(a.fontMatrix||T)[0],q=a.ascentScaled?1:p/Lb,r=d.ascent||Math.round(q*(a.ascent||o[3])),s=d.descent||Math.round(q*(a.descent||o[1]));s>0&&a.descent>0&&o[1]<0&&(s=-s);var t=d.yMax||r,u=-d.yMin||-s;return"\x00$ô\x00\x00\x00»\x00\x00\x00»\x00\x00ß\x001\x00\x00\x00\x00"+String.fromCharCode(a.fixedPitch?9:0)+"\x00\x00\x00\x00\x00\x00"+k(e)+k(f)+k(g)+k(h)+"*21*"+j(a.italicAngle?1:0)+j(i||a.firstChar)+j(l||a.lastChar)+j(r)+j(s)+"\x00d"+j(t)+j(u)+"\x00\x00\x00\x00\x00\x00\x00\x00"+j(a.xHeight)+j(a.capHeight)+j(0)+j(i||a.firstChar)+"\x00"}function v(a){var b=Math.floor(a.italicAngle*Math.pow(2,16));return"\x00\x00\x00"+k(b)+"\x00\x00\x00\x00"+k(a.fixedPitch)+"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}function w(a,b){b||(b=[[],[]]);var c,d,e,f,g,h=[b[0][0]||"Original licence",b[0][1]||a,b[0][2]||"Unknown",b[0][3]||"uniqueID",b[0][4]||a,b[0][5]||"Version 0.11",b[0][6]||"",b[0][7]||"Unknown",b[0][8]||"Unknown",b[0][9]||"Unknown"],i=[];for(c=0,d=h.length;d>c;c++){g=b[1][c]||h[c];var k=[];for(e=0,f=g.length;f>e;e++)k.push(j(g.charCodeAt(e)));i.push(k.join(""))}var l=[h,i],m=["\x00","\x00"],n=["\x00\x00","\x00"],o=["\x00\x00","	"],p=h.length*m.length,q="\x00\x00"+j(p)+j(12*p+6),r=0;for(c=0,d=m.length;d>c;c++){var s=l[c];for(e=0,f=s.length;f>e;e++){g=s[e];var t=m[c]+n[c]+o[c]+j(e)+j(g.length)+j(r);q+=t,r+=g.length}}return q+=h.join("")+i.join("")}return d.getFontID=function(){var a=1;return function(){return String(a++)}}(),d.prototype={name:null,font:null,mimetype:null,encoding:null,get renderer(){var a=yc.create(this);return g(this,"renderer",a)},exportData:function(){var a={};for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},checkAndRepair:function(d,g,j){function k(a){var b=i(a.getBytes(4)),c=a.getInt32(),d=a.getInt32()>>>0,e=a.getInt32()>>>0,f=a.pos;a.pos=a.start?a.start:0,a.skip(d);var g=a.getBytes(e);return a.pos=f,"head"===b&&(g[8]=g[9]=g[10]=g[11]=0,g[17]|=32),{tag:b,checksum:c,length:e,offset:d,data:g}}function l(a){return{version:i(a.getBytes(4)),numTables:a.getUint16(),searchRange:a.getUint16(),entrySelector:a.getUint16(),rangeShift:a.getUint16()}}function m(a,c,d,e){var f,g=(c.start?c.start:0)+a.offset;c.pos=g;for(var h,i=(c.getUint16(),c.getUint16()),j=!1,k=0;i>k;k++){var l=c.getUint16(),m=c.getUint16(),n=c.getInt32()>>>0,o=!1;if(0===l&&0===m?o=!0:1===l&&0===m?o=!0:3!==l||1!==m||(d||!e)&&h?d&&3===l&&0===m&&(o=!0,j=!0):(o=!0,d||(j=!0)),o&&(h={platformId:l,encodingId:m,offset:n}),j)break}if(h&&(c.pos=g+h.offset),!h||-1===c.peekByte())return b("Could not find a preferred cmap table."),{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1};var p,q,r=c.getUint16(),s=(c.getUint16(),c.getUint16(),!1),t=[];if(0===r){for(p=0;256>p;p++){var u=c.getByte();u&&t.push({charCode:p,glyphId:u})}s=!0}else if(4===r){var v=c.getUint16()>>1;c.getBytes(6);var w,x=[];for(w=0;v>w;w++)x.push({end:c.getUint16()});for(c.getUint16(),w=0;v>w;w++)x[w].start=c.getUint16();for(w=0;v>w;w++)x[w].delta=c.getUint16();var y=0;for(w=0;v>w;w++){f=x[w];var z=c.getUint16();if(z){var A=(z>>1)-(v-w);f.offsetIndex=A,y=Math.max(y,A+f.end-f.start+1)}else f.offsetIndex=-1}var B=[];for(p=0;y>p;p++)B.push(c.getUint16());for(w=0;v>w;w++){f=x[w],g=f.start;var C=f.end,D=f.delta;for(A=f.offsetIndex,p=g;C>=p;p++)65535!==p&&(q=0>A?p:B[A+p-g],q=q+D&65535,0!==q&&t.push({charCode:p,glyphId:q}))}}else{if(6!==r)return b("cmap table has unsupported format: "+r),{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1};var E=c.getUint16(),F=c.getUint16();for(p=0;F>p;p++){q=c.getUint16();var G=E+p;t.push({charCode:G,glyphId:q})}}for(t.sort(function(a,b){return a.charCode-b.charCode}),k=1;k<t.length;k++)t[k-1].charCode===t[k].charCode&&(t.splice(k,1),k--);return{platformId:h.platformId,encodingId:h.encodingId,mappings:t,hasShortCmap:s}}function n(b,c,d,e){if(!c)return void(d&&(d.data=null));b.pos=(b.start?b.start:0)+c.offset,b.pos+=c.length-2;var f=b.getUint16();f>e&&(a("The numOfMetrics ("+f+") should not be greater than the numGlyphs ("+e+")"),f=e,c.data[34]=(65280&f)>>8,c.data[35]=255&f);var g=e-f,h=g-(d.length-4*f>>1);if(h>0){var i=new Uint8Array(d.length+2*h);i.set(d.data),d.data=i}}function o(a,b,c,d,e,f){if(12>=c-b)return 0;var g=a.subarray(b,c),h=g[0]<<8|g[1];if(32768&h)return d.set(g,e),g.length;var i,j=10,k=0;for(i=0;h>i;i++){var l=g[j]<<8|g[j+1];k=l+1,j+=2}var m=j,n=g[j]<<8|g[j+1];j+=2+n;var o=j,p=0;for(i=0;k>i;i++){var q=g[j++];192&q&&(g[j-1]=63&q);var r=(2&q?1:16&q?0:2)+(4&q?1:32&q?0:2);if(p+=r,8&q){var s=g[j++];i+=s,p+=s*r}}if(0===p)return 0;var t=j+p;return t>g.length?0:!f&&n>0?(d.set(g.subarray(0,m),e),d.set([0,0],e+m),d.set(g.subarray(o,t),e+m+2),t-=n,g.length-t>3&&(t=t+3&-4),t):g.length-t>3?(t=t+3&-4,d.set(g.subarray(0,t),e),t):(d.set(g,e),g.length)}function p(c,d,e){var g=c.data,i=h(g[0],g[1],g[2],g[3]);i>>16!==1&&(a("Attempting to fix invalid version in head table: "+i),g[0]=0,g[1]=1,g[2]=0,g[3]=0);var j=f(g[50],g[51]);if(0>j||j>1){a("Attempting to fix invalid indexToLocFormat in head table: "+j);var k=d+1;e===k<<1?(g[50]=0,g[51]=0):e===k<<2?(g[50]=0,g[51]=1):b("Could not fix indexToLocFormat: "+j)}}function r(a,b,c,d,e,f){var g,h,i;d?(g=4,h=function(a,b){return a[b]<<24|a[b+1]<<16|a[b+2]<<8|a[b+3]},i=function(a,b,c){a[b]=c>>>24&255,a[b+1]=c>>16&255,a[b+2]=c>>8&255,a[b+3]=255&c}):(g=2,h=function(a,b){return a[b]<<9|a[b+1]<<1},i=function(a,b,c){a[b]=c>>9&255,a[b+1]=c>>1&255});var j=a.data,k=g*(1+c);j.length!==k&&(j=new Uint8Array(k),j.set(a.data.subarray(0,k)),a.data=j);var l=b.data,m=l.length,n=new Uint8Array(m),p=h(j,0),q=0,r={};i(j,0,q);var s,t;for(s=0,t=g;c>s;s++,t+=g){var u=h(j,t);if(u>m&&(m+3&-4)===u&&(u=m),u>m)i(j,t,q),p=u;else{p===u&&(r[s]=!0);var v=o(l,p,u,n,q,e);q+=v,i(j,t,q),p=u}}if(0===q){var w=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(s=0,t=g;c>s;s++,t+=g)i(j,t,w.length);return b.data=w,r}if(f){var x=h(j,g);n.length>x+q?b.data=n.subarray(0,x+q):(b.data=new Uint8Array(x+q),b.data.set(n.subarray(0,q))),b.data.set(n.subarray(0,x),q),i(a.data,j.length-g,q+x)}else b.data=n.subarray(0,q);return r}function y(a,c,d){var e=(g.start?g.start:0)+a.offset;g.pos=e;var f=a.length,h=e+f,i=g.getInt32();
-Upsilon1:978,Upsilonacutehooksymbolgreek:979,Upsilonafrican:433,Upsilondieresis:939,Upsilondieresishooksymbolgreek:980,Upsilonhooksymbol:978,Upsilontonos:910,Uring:366,Ushortcyrillic:1038,Usmall:63349,Ustraightcyrillic:1198,Ustraightstrokecyrillic:1200,Utilde:360,Utildeacute:7800,Utildebelow:7796,V:86,Vcircle:9419,Vdotbelow:7806,Vecyrillic:1042,Vewarmenian:1358,Vhook:434,Vmonospace:65334,Voarmenian:1352,Vsmall:63350,Vtilde:7804,W:87,Wacute:7810,Wcircle:9420,Wcircumflex:372,Wdieresis:7812,Wdotaccent:7814,Wdotbelow:7816,Wgrave:7808,Wmonospace:65335,Wsmall:63351,X:88,Xcircle:9421,Xdieresis:7820,Xdotaccent:7818,Xeharmenian:1341,Xi:926,Xmonospace:65336,Xsmall:63352,Y:89,Yacute:221,Yacutesmall:63485,Yatcyrillic:1122,Ycircle:9422,Ycircumflex:374,Ydieresis:376,Ydieresissmall:63487,Ydotaccent:7822,Ydotbelow:7924,Yericyrillic:1067,Yerudieresiscyrillic:1272,Ygrave:7922,Yhook:435,Yhookabove:7926,Yiarmenian:1349,Yicyrillic:1031,Yiwnarmenian:1362,Ymonospace:65337,Ysmall:63353,Ytilde:7928,Yusbigcyrillic:1130,Yusbigiotifiedcyrillic:1132,Yuslittlecyrillic:1126,Yuslittleiotifiedcyrillic:1128,Z:90,Zaarmenian:1334,Zacute:377,Zcaron:381,Zcaronsmall:63231,Zcircle:9423,Zcircumflex:7824,Zdot:379,Zdotaccent:379,Zdotbelow:7826,Zecyrillic:1047,Zedescendercyrillic:1176,Zedieresiscyrillic:1246,Zeta:918,Zhearmenian:1338,Zhebrevecyrillic:1217,Zhecyrillic:1046,Zhedescendercyrillic:1174,Zhedieresiscyrillic:1244,Zlinebelow:7828,Zmonospace:65338,Zsmall:63354,Zstroke:437,a:97,aabengali:2438,aacute:225,aadeva:2310,aagujarati:2694,aagurmukhi:2566,aamatragurmukhi:2622,aarusquare:13059,aavowelsignbengali:2494,aavowelsigndeva:2366,aavowelsigngujarati:2750,abbreviationmarkarmenian:1375,abbreviationsigndeva:2416,abengali:2437,abopomofo:12570,abreve:259,abreveacute:7855,abrevecyrillic:1233,abrevedotbelow:7863,abrevegrave:7857,abrevehookabove:7859,abrevetilde:7861,acaron:462,acircle:9424,acircumflex:226,acircumflexacute:7845,acircumflexdotbelow:7853,acircumflexgrave:7847,acircumflexhookabove:7849,acircumflextilde:7851,acute:180,acutebelowcmb:791,acutecmb:769,acutecomb:769,acutedeva:2388,acutelowmod:719,acutetonecmb:833,acyrillic:1072,adblgrave:513,addakgurmukhi:2673,adeva:2309,adieresis:228,adieresiscyrillic:1235,adieresismacron:479,adotbelow:7841,adotmacron:481,ae:230,aeacute:509,aekorean:12624,aemacron:483,afii00208:8213,afii08941:8356,afii10017:1040,afii10018:1041,afii10019:1042,afii10020:1043,afii10021:1044,afii10022:1045,afii10023:1025,afii10024:1046,afii10025:1047,afii10026:1048,afii10027:1049,afii10028:1050,afii10029:1051,afii10030:1052,afii10031:1053,afii10032:1054,afii10033:1055,afii10034:1056,afii10035:1057,afii10036:1058,afii10037:1059,afii10038:1060,afii10039:1061,afii10040:1062,afii10041:1063,afii10042:1064,afii10043:1065,afii10044:1066,afii10045:1067,afii10046:1068,afii10047:1069,afii10048:1070,afii10049:1071,afii10050:1168,afii10051:1026,afii10052:1027,afii10053:1028,afii10054:1029,afii10055:1030,afii10056:1031,afii10057:1032,afii10058:1033,afii10059:1034,afii10060:1035,afii10061:1036,afii10062:1038,afii10063:63172,afii10064:63173,afii10065:1072,afii10066:1073,afii10067:1074,afii10068:1075,afii10069:1076,afii10070:1077,afii10071:1105,afii10072:1078,afii10073:1079,afii10074:1080,afii10075:1081,afii10076:1082,afii10077:1083,afii10078:1084,afii10079:1085,afii10080:1086,afii10081:1087,afii10082:1088,afii10083:1089,afii10084:1090,afii10085:1091,afii10086:1092,afii10087:1093,afii10088:1094,afii10089:1095,afii10090:1096,afii10091:1097,afii10092:1098,afii10093:1099,afii10094:1100,afii10095:1101,afii10096:1102,afii10097:1103,afii10098:1169,afii10099:1106,afii10100:1107,afii10101:1108,afii10102:1109,afii10103:1110,afii10104:1111,afii10105:1112,afii10106:1113,afii10107:1114,afii10108:1115,afii10109:1116,afii10110:1118,afii10145:1039,afii10146:1122,afii10147:1138,afii10148:1140,afii10192:63174,afii10193:1119,afii10194:1123,afii10195:1139,afii10196:1141,afii10831:63175,afii10832:63176,afii10846:1241,afii299:8206,afii300:8207,afii301:8205,afii57381:1642,afii57388:1548,afii57392:1632,afii57393:1633,afii57394:1634,afii57395:1635,afii57396:1636,afii57397:1637,afii57398:1638,afii57399:1639,afii57400:1640,afii57401:1641,afii57403:1563,afii57407:1567,afii57409:1569,afii57410:1570,afii57411:1571,afii57412:1572,afii57413:1573,afii57414:1574,afii57415:1575,afii57416:1576,afii57417:1577,afii57418:1578,afii57419:1579,afii57420:1580,afii57421:1581,afii57422:1582,afii57423:1583,afii57424:1584,afii57425:1585,afii57426:1586,afii57427:1587,afii57428:1588,afii57429:1589,afii57430:1590,afii57431:1591,afii57432:1592,afii57433:1593,afii57434:1594,afii57440:1600,afii57441:1601,afii57442:1602,afii57443:1603,afii57444:1604,afii57445:1605,afii57446:1606,afii57448:1608,afii57449:1609,afii57450:1610,afii57451:1611,afii57452:1612,afii57453:1613,afii57454:1614,afii57455:1615,afii57456:1616,afii57457:1617,afii57458:1618,afii57470:1607,afii57505:1700,afii57506:1662,afii57507:1670,afii57508:1688,afii57509:1711,afii57511:1657,afii57512:1672,afii57513:1681,afii57514:1722,afii57519:1746,afii57534:1749,afii57636:8362,afii57645:1470,afii57658:1475,afii57664:1488,afii57665:1489,afii57666:1490,afii57667:1491,afii57668:1492,afii57669:1493,afii57670:1494,afii57671:1495,afii57672:1496,afii57673:1497,afii57674:1498,afii57675:1499,afii57676:1500,afii57677:1501,afii57678:1502,afii57679:1503,afii57680:1504,afii57681:1505,afii57682:1506,afii57683:1507,afii57684:1508,afii57685:1509,afii57686:1510,afii57687:1511,afii57688:1512,afii57689:1513,afii57690:1514,afii57694:64298,afii57695:64299,afii57700:64331,afii57705:64287,afii57716:1520,afii57717:1521,afii57718:1522,afii57723:64309,afii57793:1460,afii57794:1461,afii57795:1462,afii57796:1467,afii57797:1464,afii57798:1463,afii57799:1456,afii57800:1458,afii57801:1457,afii57802:1459,afii57803:1474,afii57804:1473,afii57806:1465,afii57807:1468,afii57839:1469,afii57841:1471,afii57842:1472,afii57929:700,afii61248:8453,afii61289:8467,afii61352:8470,afii61573:8236,afii61574:8237,afii61575:8238,afii61664:8204,afii63167:1645,afii64937:701,agrave:224,agujarati:2693,agurmukhi:2565,ahiragana:12354,ahookabove:7843,aibengali:2448,aibopomofo:12574,aideva:2320,aiecyrillic:1237,aigujarati:2704,aigurmukhi:2576,aimatragurmukhi:2632,ainarabic:1593,ainfinalarabic:65226,aininitialarabic:65227,ainmedialarabic:65228,ainvertedbreve:515,aivowelsignbengali:2504,aivowelsigndeva:2376,aivowelsigngujarati:2760,akatakana:12450,akatakanahalfwidth:65393,akorean:12623,alef:1488,alefarabic:1575,alefdageshhebrew:64304,aleffinalarabic:65166,alefhamzaabovearabic:1571,alefhamzaabovefinalarabic:65156,alefhamzabelowarabic:1573,alefhamzabelowfinalarabic:65160,alefhebrew:1488,aleflamedhebrew:64335,alefmaddaabovearabic:1570,alefmaddaabovefinalarabic:65154,alefmaksuraarabic:1609,alefmaksurafinalarabic:65264,alefmaksurainitialarabic:65267,alefmaksuramedialarabic:65268,alefpatahhebrew:64302,alefqamatshebrew:64303,aleph:8501,allequal:8780,alpha:945,alphatonos:940,amacron:257,amonospace:65345,ampersand:38,ampersandmonospace:65286,ampersandsmall:63270,amsquare:13250,anbopomofo:12578,angbopomofo:12580,angbracketleft:12296,angbracketright:12297,angkhankhuthai:3674,angle:8736,anglebracketleft:12296,anglebracketleftvertical:65087,anglebracketright:12297,anglebracketrightvertical:65088,angleleft:9001,angleright:9002,angstrom:8491,anoteleia:903,anudattadeva:2386,anusvarabengali:2434,anusvaradeva:2306,anusvaragujarati:2690,aogonek:261,apaatosquare:13056,aparen:9372,apostrophearmenian:1370,apostrophemod:700,apple:63743,approaches:8784,approxequal:8776,approxequalorimage:8786,approximatelyequal:8773,araeaekorean:12686,araeakorean:12685,arc:8978,arighthalfring:7834,aring:229,aringacute:507,aringbelow:7681,arrowboth:8596,arrowdashdown:8675,arrowdashleft:8672,arrowdashright:8674,arrowdashup:8673,arrowdblboth:8660,arrowdbldown:8659,arrowdblleft:8656,arrowdblright:8658,arrowdblup:8657,arrowdown:8595,arrowdownleft:8601,arrowdownright:8600,arrowdownwhite:8681,arrowheaddownmod:709,arrowheadleftmod:706,arrowheadrightmod:707,arrowheadupmod:708,arrowhorizex:63719,arrowleft:8592,arrowleftdbl:8656,arrowleftdblstroke:8653,arrowleftoverright:8646,arrowleftwhite:8678,arrowright:8594,arrowrightdblstroke:8655,arrowrightheavy:10142,arrowrightoverleft:8644,arrowrightwhite:8680,arrowtableft:8676,arrowtabright:8677,arrowup:8593,arrowupdn:8597,arrowupdnbse:8616,arrowupdownbase:8616,arrowupleft:8598,arrowupleftofdown:8645,arrowupright:8599,arrowupwhite:8679,arrowvertex:63718,asciicircum:94,asciicircummonospace:65342,asciitilde:126,asciitildemonospace:65374,ascript:593,ascriptturned:594,asmallhiragana:12353,asmallkatakana:12449,asmallkatakanahalfwidth:65383,asterisk:42,asteriskaltonearabic:1645,asteriskarabic:1645,asteriskmath:8727,asteriskmonospace:65290,asterisksmall:65121,asterism:8258,asuperior:63209,asymptoticallyequal:8771,at:64,atilde:227,atmonospace:65312,atsmall:65131,aturned:592,aubengali:2452,aubopomofo:12576,audeva:2324,augujarati:2708,augurmukhi:2580,aulengthmarkbengali:2519,aumatragurmukhi:2636,auvowelsignbengali:2508,auvowelsigndeva:2380,auvowelsigngujarati:2764,avagrahadeva:2365,aybarmenian:1377,ayin:1506,ayinaltonehebrew:64288,ayinhebrew:1506,b:98,babengali:2476,backslash:92,backslashmonospace:65340,badeva:2348,bagujarati:2732,bagurmukhi:2604,bahiragana:12400,bahtthai:3647,bakatakana:12496,bar:124,barmonospace:65372,bbopomofo:12549,bcircle:9425,bdotaccent:7683,bdotbelow:7685,beamedsixteenthnotes:9836,because:8757,becyrillic:1073,beharabic:1576,behfinalarabic:65168,behinitialarabic:65169,behiragana:12409,behmedialarabic:65170,behmeeminitialarabic:64671,behmeemisolatedarabic:64520,behnoonfinalarabic:64621,bekatakana:12505,benarmenian:1378,bet:1489,beta:946,betasymbolgreek:976,betdagesh:64305,betdageshhebrew:64305,bethebrew:1489,betrafehebrew:64332,bhabengali:2477,bhadeva:2349,bhagujarati:2733,bhagurmukhi:2605,bhook:595,bihiragana:12403,bikatakana:12499,bilabialclick:664,bindigurmukhi:2562,birusquare:13105,blackcircle:9679,blackdiamond:9670,blackdownpointingtriangle:9660,blackleftpointingpointer:9668,blackleftpointingtriangle:9664,blacklenticularbracketleft:12304,blacklenticularbracketleftvertical:65083,blacklenticularbracketright:12305,blacklenticularbracketrightvertical:65084,blacklowerlefttriangle:9699,blacklowerrighttriangle:9698,blackrectangle:9644,blackrightpointingpointer:9658,blackrightpointingtriangle:9654,blacksmallsquare:9642,blacksmilingface:9787,blacksquare:9632,blackstar:9733,blackupperlefttriangle:9700,blackupperrighttriangle:9701,blackuppointingsmalltriangle:9652,blackuppointingtriangle:9650,blank:9251,blinebelow:7687,block:9608,bmonospace:65346,bobaimaithai:3610,bohiragana:12412,bokatakana:12508,bparen:9373,bqsquare:13251,braceex:63732,braceleft:123,braceleftbt:63731,braceleftmid:63730,braceleftmonospace:65371,braceleftsmall:65115,bracelefttp:63729,braceleftvertical:65079,braceright:125,bracerightbt:63742,bracerightmid:63741,bracerightmonospace:65373,bracerightsmall:65116,bracerighttp:63740,bracerightvertical:65080,bracketleft:91,bracketleftbt:63728,bracketleftex:63727,bracketleftmonospace:65339,bracketlefttp:63726,bracketright:93,bracketrightbt:63739,bracketrightex:63738,bracketrightmonospace:65341,bracketrighttp:63737,breve:728,brevebelowcmb:814,brevecmb:774,breveinvertedbelowcmb:815,breveinvertedcmb:785,breveinverteddoublecmb:865,bridgebelowcmb:810,bridgeinvertedbelowcmb:826,brokenbar:166,bstroke:384,bsuperior:63210,btopbar:387,buhiragana:12406,bukatakana:12502,bullet:8226,bulletinverse:9688,bulletoperator:8729,bullseye:9678,c:99,caarmenian:1390,cabengali:2458,cacute:263,cadeva:2330,cagujarati:2714,cagurmukhi:2586,calsquare:13192,candrabindubengali:2433,candrabinducmb:784,candrabindudeva:2305,candrabindugujarati:2689,capslock:8682,careof:8453,caron:711,caronbelowcmb:812,caroncmb:780,carriagereturn:8629,cbopomofo:12568,ccaron:269,ccedilla:231,ccedillaacute:7689,ccircle:9426,ccircumflex:265,ccurl:597,cdot:267,cdotaccent:267,cdsquare:13253,cedilla:184,cedillacmb:807,cent:162,centigrade:8451,centinferior:63199,centmonospace:65504,centoldstyle:63394,centsuperior:63200,chaarmenian:1401,chabengali:2459,chadeva:2331,chagujarati:2715,chagurmukhi:2587,chbopomofo:12564,cheabkhasiancyrillic:1213,checkmark:10003,checyrillic:1095,chedescenderabkhasiancyrillic:1215,chedescendercyrillic:1207,chedieresiscyrillic:1269,cheharmenian:1395,chekhakassiancyrillic:1228,cheverticalstrokecyrillic:1209,chi:967,chieuchacirclekorean:12919,chieuchaparenkorean:12823,chieuchcirclekorean:12905,chieuchkorean:12618,chieuchparenkorean:12809,chochangthai:3594,chochanthai:3592,chochingthai:3593,chochoethai:3596,chook:392,cieucacirclekorean:12918,cieucaparenkorean:12822,cieuccirclekorean:12904,cieuckorean:12616,cieucparenkorean:12808,cieucuparenkorean:12828,circle:9675,circlecopyrt:169,circlemultiply:8855,circleot:8857,circleplus:8853,circlepostalmark:12342,circlewithlefthalfblack:9680,circlewithrighthalfblack:9681,circumflex:710,circumflexbelowcmb:813,circumflexcmb:770,clear:8999,clickalveolar:450,clickdental:448,clicklateral:449,clickretroflex:451,club:9827,clubsuitblack:9827,clubsuitwhite:9831,cmcubedsquare:13220,cmonospace:65347,cmsquaredsquare:13216,coarmenian:1409,colon:58,colonmonetary:8353,colonmonospace:65306,colonsign:8353,colonsmall:65109,colontriangularhalfmod:721,colontriangularmod:720,comma:44,commaabovecmb:787,commaaboverightcmb:789,commaaccent:63171,commaarabic:1548,commaarmenian:1373,commainferior:63201,commamonospace:65292,commareversedabovecmb:788,commareversedmod:701,commasmall:65104,commasuperior:63202,commaturnedabovecmb:786,commaturnedmod:699,compass:9788,congruent:8773,contourintegral:8750,control:8963,controlACK:6,controlBEL:7,controlBS:8,controlCAN:24,controlCR:13,controlDC1:17,controlDC2:18,controlDC3:19,controlDC4:20,controlDEL:127,controlDLE:16,controlEM:25,controlENQ:5,controlEOT:4,controlESC:27,controlETB:23,controlETX:3,controlFF:12,controlFS:28,controlGS:29,controlHT:9,controlLF:10,controlNAK:21,controlRS:30,controlSI:15,controlSO:14,controlSOT:2,controlSTX:1,controlSUB:26,controlSYN:22,controlUS:31,controlVT:11,copyright:169,copyrightsans:63721,copyrightserif:63193,cornerbracketleft:12300,cornerbracketlefthalfwidth:65378,cornerbracketleftvertical:65089,cornerbracketright:12301,cornerbracketrighthalfwidth:65379,cornerbracketrightvertical:65090,corporationsquare:13183,cosquare:13255,coverkgsquare:13254,cparen:9374,cruzeiro:8354,cstretched:663,curlyand:8911,curlyor:8910,currency:164,cyrBreve:63185,cyrFlex:63186,cyrbreve:63188,cyrflex:63189,d:100,daarmenian:1380,dabengali:2470,dadarabic:1590,dadeva:2342,dadfinalarabic:65214,dadinitialarabic:65215,dadmedialarabic:65216,dagesh:1468,dageshhebrew:1468,dagger:8224,daggerdbl:8225,dagujarati:2726,dagurmukhi:2598,dahiragana:12384,dakatakana:12480,dalarabic:1583,dalet:1491,daletdagesh:64307,daletdageshhebrew:64307,dalethebrew:1491,dalfinalarabic:65194,dammaarabic:1615,dammalowarabic:1615,dammatanaltonearabic:1612,dammatanarabic:1612,danda:2404,dargahebrew:1447,dargalefthebrew:1447,dasiapneumatacyrilliccmb:1157,dblGrave:63187,dblanglebracketleft:12298,dblanglebracketleftvertical:65085,dblanglebracketright:12299,dblanglebracketrightvertical:65086,dblarchinvertedbelowcmb:811,dblarrowleft:8660,dblarrowright:8658,dbldanda:2405,dblgrave:63190,dblgravecmb:783,dblintegral:8748,dbllowline:8215,dbllowlinecmb:819,dbloverlinecmb:831,dblprimemod:698,dblverticalbar:8214,dblverticallineabovecmb:782,dbopomofo:12553,dbsquare:13256,dcaron:271,dcedilla:7697,dcircle:9427,dcircumflexbelow:7699,dcroat:273,ddabengali:2465,ddadeva:2337,ddagujarati:2721,ddagurmukhi:2593,ddalarabic:1672,ddalfinalarabic:64393,dddhadeva:2396,ddhabengali:2466,ddhadeva:2338,ddhagujarati:2722,ddhagurmukhi:2594,ddotaccent:7691,ddotbelow:7693,decimalseparatorarabic:1643,decimalseparatorpersian:1643,decyrillic:1076,degree:176,dehihebrew:1453,dehiragana:12391,deicoptic:1007,dekatakana:12487,deleteleft:9003,deleteright:8998,delta:948,deltaturned:397,denominatorminusonenumeratorbengali:2552,dezh:676,dhabengali:2471,dhadeva:2343,dhagujarati:2727,dhagurmukhi:2599,dhook:599,dialytikatonos:901,dialytikatonoscmb:836,diamond:9830,diamondsuitwhite:9826,dieresis:168,dieresisacute:63191,dieresisbelowcmb:804,dieresiscmb:776,dieresisgrave:63192,dieresistonos:901,dihiragana:12386,dikatakana:12482,dittomark:12291,divide:247,divides:8739,divisionslash:8725,djecyrillic:1106,dkshade:9619,dlinebelow:7695,dlsquare:13207,dmacron:273,dmonospace:65348,dnblock:9604,dochadathai:3598,dodekthai:3604,dohiragana:12393,dokatakana:12489,dollar:36,dollarinferior:63203,dollarmonospace:65284,dollaroldstyle:63268,dollarsmall:65129,dollarsuperior:63204,dong:8363,dorusquare:13094,dotaccent:729,dotaccentcmb:775,dotbelowcmb:803,dotbelowcomb:803,dotkatakana:12539,dotlessi:305,dotlessj:63166,dotlessjstrokehook:644,dotmath:8901,dottedcircle:9676,doubleyodpatah:64287,doubleyodpatahhebrew:64287,downtackbelowcmb:798,downtackmod:725,dparen:9375,dsuperior:63211,dtail:598,dtopbar:396,duhiragana:12389,dukatakana:12485,dz:499,dzaltone:675,dzcaron:454,dzcurl:677,dzeabkhasiancyrillic:1249,dzecyrillic:1109,dzhecyrillic:1119,e:101,eacute:233,earth:9793,ebengali:2447,ebopomofo:12572,ebreve:277,ecandradeva:2317,ecandragujarati:2701,ecandravowelsigndeva:2373,ecandravowelsigngujarati:2757,ecaron:283,ecedillabreve:7709,echarmenian:1381,echyiwnarmenian:1415,ecircle:9428,ecircumflex:234,ecircumflexacute:7871,ecircumflexbelow:7705,ecircumflexdotbelow:7879,ecircumflexgrave:7873,ecircumflexhookabove:7875,ecircumflextilde:7877,ecyrillic:1108,edblgrave:517,edeva:2319,edieresis:235,edot:279,edotaccent:279,edotbelow:7865,eegurmukhi:2575,eematragurmukhi:2631,efcyrillic:1092,egrave:232,egujarati:2703,eharmenian:1383,ehbopomofo:12573,ehiragana:12360,ehookabove:7867,eibopomofo:12575,eight:56,eightarabic:1640,eightbengali:2542,eightcircle:9319,eightcircleinversesansserif:10129,eightdeva:2414,eighteencircle:9329,eighteenparen:9349,eighteenperiod:9369,eightgujarati:2798,eightgurmukhi:2670,eighthackarabic:1640,eighthangzhou:12328,eighthnotebeamed:9835,eightideographicparen:12839,eightinferior:8328,eightmonospace:65304,eightoldstyle:63288,eightparen:9339,eightperiod:9359,eightpersian:1784,eightroman:8567,eightsuperior:8312,eightthai:3672,einvertedbreve:519,eiotifiedcyrillic:1125,ekatakana:12456,ekatakanahalfwidth:65396,ekonkargurmukhi:2676,ekorean:12628,elcyrillic:1083,element:8712,elevencircle:9322,elevenparen:9342,elevenperiod:9362,elevenroman:8570,ellipsis:8230,ellipsisvertical:8942,emacron:275,emacronacute:7703,emacrongrave:7701,emcyrillic:1084,emdash:8212,emdashvertical:65073,emonospace:65349,emphasismarkarmenian:1371,emptyset:8709,enbopomofo:12579,encyrillic:1085,endash:8211,endashvertical:65074,endescendercyrillic:1187,eng:331,engbopomofo:12581,enghecyrillic:1189,enhookcyrillic:1224,enspace:8194,eogonek:281,eokorean:12627,eopen:603,eopenclosed:666,eopenreversed:604,eopenreversedclosed:606,eopenreversedhook:605,eparen:9376,epsilon:949,epsilontonos:941,equal:61,equalmonospace:65309,equalsmall:65126,equalsuperior:8316,equivalence:8801,erbopomofo:12582,ercyrillic:1088,ereversed:600,ereversedcyrillic:1101,escyrillic:1089,esdescendercyrillic:1195,esh:643,eshcurl:646,eshortdeva:2318,eshortvowelsigndeva:2374,eshreversedloop:426,eshsquatreversed:645,esmallhiragana:12359,esmallkatakana:12455,esmallkatakanahalfwidth:65386,estimated:8494,esuperior:63212,eta:951,etarmenian:1384,etatonos:942,eth:240,etilde:7869,etildebelow:7707,etnahtafoukhhebrew:1425,etnahtafoukhlefthebrew:1425,etnahtahebrew:1425,etnahtalefthebrew:1425,eturned:477,eukorean:12641,euro:8364,evowelsignbengali:2503,evowelsigndeva:2375,evowelsigngujarati:2759,exclam:33,exclamarmenian:1372,exclamdbl:8252,exclamdown:161,exclamdownsmall:63393,exclammonospace:65281,exclamsmall:63265,existential:8707,ezh:658,ezhcaron:495,ezhcurl:659,ezhreversed:441,ezhtail:442,f:102,fadeva:2398,fagurmukhi:2654,fahrenheit:8457,fathaarabic:1614,fathalowarabic:1614,fathatanarabic:1611,fbopomofo:12552,fcircle:9429,fdotaccent:7711,feharabic:1601,feharmenian:1414,fehfinalarabic:65234,fehinitialarabic:65235,fehmedialarabic:65236,feicoptic:997,female:9792,ff:64256,ffi:64259,ffl:64260,fi:64257,fifteencircle:9326,fifteenparen:9346,fifteenperiod:9366,figuredash:8210,filledbox:9632,filledrect:9644,finalkaf:1498,finalkafdagesh:64314,finalkafdageshhebrew:64314,finalkafhebrew:1498,finalmem:1501,finalmemhebrew:1501,finalnun:1503,finalnunhebrew:1503,finalpe:1507,finalpehebrew:1507,finaltsadi:1509,finaltsadihebrew:1509,firsttonechinese:713,fisheye:9673,fitacyrillic:1139,five:53,fivearabic:1637,fivebengali:2539,fivecircle:9316,fivecircleinversesansserif:10126,fivedeva:2411,fiveeighths:8541,fivegujarati:2795,fivegurmukhi:2667,fivehackarabic:1637,fivehangzhou:12325,fiveideographicparen:12836,fiveinferior:8325,fivemonospace:65301,fiveoldstyle:63285,fiveparen:9336,fiveperiod:9356,fivepersian:1781,fiveroman:8564,fivesuperior:8309,fivethai:3669,fl:64258,florin:402,fmonospace:65350,fmsquare:13209,fofanthai:3615,fofathai:3613,fongmanthai:3663,forall:8704,four:52,fourarabic:1636,fourbengali:2538,fourcircle:9315,fourcircleinversesansserif:10125,fourdeva:2410,fourgujarati:2794,fourgurmukhi:2666,fourhackarabic:1636,fourhangzhou:12324,fourideographicparen:12835,fourinferior:8324,fourmonospace:65300,fournumeratorbengali:2551,fouroldstyle:63284,fourparen:9335,fourperiod:9355,fourpersian:1780,fourroman:8563,foursuperior:8308,fourteencircle:9325,fourteenparen:9345,fourteenperiod:9365,fourthai:3668,fourthtonechinese:715,fparen:9377,fraction:8260,franc:8355,g:103,gabengali:2455,gacute:501,gadeva:2327,gafarabic:1711,gaffinalarabic:64403,gafinitialarabic:64404,gafmedialarabic:64405,gagujarati:2711,gagurmukhi:2583,gahiragana:12364,gakatakana:12460,gamma:947,gammalatinsmall:611,gammasuperior:736,gangiacoptic:1003,gbopomofo:12557,gbreve:287,gcaron:487,gcedilla:291,gcircle:9430,gcircumflex:285,gcommaaccent:291,gdot:289,gdotaccent:289,gecyrillic:1075,gehiragana:12370,gekatakana:12466,geometricallyequal:8785,gereshaccenthebrew:1436,gereshhebrew:1523,gereshmuqdamhebrew:1437,germandbls:223,gershayimaccenthebrew:1438,gershayimhebrew:1524,getamark:12307,ghabengali:2456,ghadarmenian:1394,ghadeva:2328,ghagujarati:2712,ghagurmukhi:2584,ghainarabic:1594,ghainfinalarabic:65230,ghaininitialarabic:65231,ghainmedialarabic:65232,ghemiddlehookcyrillic:1173,ghestrokecyrillic:1171,gheupturncyrillic:1169,ghhadeva:2394,ghhagurmukhi:2650,ghook:608,ghzsquare:13203,gihiragana:12366,gikatakana:12462,gimarmenian:1379,gimel:1490,gimeldagesh:64306,gimeldageshhebrew:64306,gimelhebrew:1490,gjecyrillic:1107,glottalinvertedstroke:446,glottalstop:660,glottalstopinverted:662,glottalstopmod:704,glottalstopreversed:661,glottalstopreversedmod:705,glottalstopreversedsuperior:740,glottalstopstroke:673,glottalstopstrokereversed:674,gmacron:7713,gmonospace:65351,gohiragana:12372,gokatakana:12468,gparen:9378,gpasquare:13228,gradient:8711,grave:96,gravebelowcmb:790,gravecmb:768,gravecomb:768,gravedeva:2387,gravelowmod:718,gravemonospace:65344,gravetonecmb:832,greater:62,greaterequal:8805,greaterequalorless:8923,greatermonospace:65310,greaterorequivalent:8819,greaterorless:8823,greateroverequal:8807,greatersmall:65125,gscript:609,gstroke:485,guhiragana:12368,guillemotleft:171,guillemotright:187,guilsinglleft:8249,guilsinglright:8250,gukatakana:12464,guramusquare:13080,gysquare:13257,h:104,haabkhasiancyrillic:1193,haaltonearabic:1729,habengali:2489,hadescendercyrillic:1203,hadeva:2361,hagujarati:2745,hagurmukhi:2617,haharabic:1581,hahfinalarabic:65186,hahinitialarabic:65187,hahiragana:12399,hahmedialarabic:65188,haitusquare:13098,hakatakana:12495,hakatakanahalfwidth:65418,halantgurmukhi:2637,hamzaarabic:1569,hamzalowarabic:1569,hangulfiller:12644,hardsigncyrillic:1098,harpoonleftbarbup:8636,harpoonrightbarbup:8640,hasquare:13258,hatafpatah:1458,hatafpatah16:1458,hatafpatah23:1458,hatafpatah2f:1458,hatafpatahhebrew:1458,hatafpatahnarrowhebrew:1458,hatafpatahquarterhebrew:1458,hatafpatahwidehebrew:1458,hatafqamats:1459,hatafqamats1b:1459,hatafqamats28:1459,hatafqamats34:1459,hatafqamatshebrew:1459,hatafqamatsnarrowhebrew:1459,hatafqamatsquarterhebrew:1459,hatafqamatswidehebrew:1459,hatafsegol:1457,hatafsegol17:1457,hatafsegol24:1457,hatafsegol30:1457,hatafsegolhebrew:1457,hatafsegolnarrowhebrew:1457,hatafsegolquarterhebrew:1457,hatafsegolwidehebrew:1457,hbar:295,hbopomofo:12559,hbrevebelow:7723,hcedilla:7721,hcircle:9431,hcircumflex:293,hdieresis:7719,hdotaccent:7715,hdotbelow:7717,he:1492,heart:9829,heartsuitblack:9829,heartsuitwhite:9825,hedagesh:64308,hedageshhebrew:64308,hehaltonearabic:1729,heharabic:1607,hehebrew:1492,hehfinalaltonearabic:64423,hehfinalalttwoarabic:65258,hehfinalarabic:65258,hehhamzaabovefinalarabic:64421,hehhamzaaboveisolatedarabic:64420,hehinitialaltonearabic:64424,hehinitialarabic:65259,hehiragana:12408,hehmedialaltonearabic:64425,hehmedialarabic:65260,heiseierasquare:13179,hekatakana:12504,hekatakanahalfwidth:65421,hekutaarusquare:13110,henghook:615,herutusquare:13113,het:1495,hethebrew:1495,hhook:614,hhooksuperior:689,hieuhacirclekorean:12923,hieuhaparenkorean:12827,hieuhcirclekorean:12909,hieuhkorean:12622,hieuhparenkorean:12813,hihiragana:12402,hikatakana:12498,hikatakanahalfwidth:65419,hiriq:1460,hiriq14:1460,hiriq21:1460,hiriq2d:1460,hiriqhebrew:1460,hiriqnarrowhebrew:1460,hiriqquarterhebrew:1460,hiriqwidehebrew:1460,hlinebelow:7830,hmonospace:65352,hoarmenian:1392,hohipthai:3627,hohiragana:12411,hokatakana:12507,hokatakanahalfwidth:65422,holam:1465,holam19:1465,holam26:1465,holam32:1465,holamhebrew:1465,holamnarrowhebrew:1465,holamquarterhebrew:1465,holamwidehebrew:1465,honokhukthai:3630,hookabovecomb:777,hookcmb:777,hookpalatalizedbelowcmb:801,hookretroflexbelowcmb:802,hoonsquare:13122,horicoptic:1001,horizontalbar:8213,horncmb:795,hotsprings:9832,house:8962,hparen:9379,hsuperior:688,hturned:613,huhiragana:12405,huiitosquare:13107,hukatakana:12501,hukatakanahalfwidth:65420,hungarumlaut:733,hungarumlautcmb:779,hv:405,hyphen:45,hypheninferior:63205,hyphenmonospace:65293,hyphensmall:65123,hyphensuperior:63206,hyphentwo:8208,i:105,iacute:237,iacyrillic:1103,ibengali:2439,ibopomofo:12583,ibreve:301,icaron:464,icircle:9432,icircumflex:238,icyrillic:1110,idblgrave:521,ideographearthcircle:12943,ideographfirecircle:12939,ideographicallianceparen:12863,ideographiccallparen:12858,ideographiccentrecircle:12965,ideographicclose:12294,ideographiccomma:12289,ideographiccommaleft:65380,ideographiccongratulationparen:12855,ideographiccorrectcircle:12963,ideographicearthparen:12847,ideographicenterpriseparen:12861,ideographicexcellentcircle:12957,ideographicfestivalparen:12864,ideographicfinancialcircle:12950,ideographicfinancialparen:12854,ideographicfireparen:12843,ideographichaveparen:12850,ideographichighcircle:12964,ideographiciterationmark:12293,ideographiclaborcircle:12952,ideographiclaborparen:12856,ideographicleftcircle:12967,ideographiclowcircle:12966,ideographicmedicinecircle:12969,ideographicmetalparen:12846,ideographicmoonparen:12842,ideographicnameparen:12852,ideographicperiod:12290,ideographicprintcircle:12958,ideographicreachparen:12867,ideographicrepresentparen:12857,ideographicresourceparen:12862,ideographicrightcircle:12968,ideographicsecretcircle:12953,ideographicselfparen:12866,ideographicsocietyparen:12851,ideographicspace:12288,ideographicspecialparen:12853,ideographicstockparen:12849,ideographicstudyparen:12859,ideographicsunparen:12848,ideographicsuperviseparen:12860,ideographicwaterparen:12844,ideographicwoodparen:12845,ideographiczero:12295,ideographmetalcircle:12942,ideographmooncircle:12938,ideographnamecircle:12948,ideographsuncircle:12944,ideographwatercircle:12940,ideographwoodcircle:12941,ideva:2311,idieresis:239,idieresisacute:7727,idieresiscyrillic:1253,idotbelow:7883,iebrevecyrillic:1239,iecyrillic:1077,ieungacirclekorean:12917,ieungaparenkorean:12821,ieungcirclekorean:12903,ieungkorean:12615,ieungparenkorean:12807,igrave:236,igujarati:2695,igurmukhi:2567,ihiragana:12356,ihookabove:7881,iibengali:2440,iicyrillic:1080,iideva:2312,iigujarati:2696,iigurmukhi:2568,iimatragurmukhi:2624,iinvertedbreve:523,iishortcyrillic:1081,iivowelsignbengali:2496,iivowelsigndeva:2368,iivowelsigngujarati:2752,ij:307,ikatakana:12452,ikatakanahalfwidth:65394,ikorean:12643,ilde:732,iluyhebrew:1452,imacron:299,imacroncyrillic:1251,imageorapproximatelyequal:8787,imatragurmukhi:2623,imonospace:65353,increment:8710,infinity:8734,iniarmenian:1387,integral:8747,integralbottom:8993,integralbt:8993,integralex:63733,integraltop:8992,integraltp:8992,intersection:8745,intisquare:13061,invbullet:9688,invcircle:9689,invsmileface:9787,iocyrillic:1105,iogonek:303,iota:953,iotadieresis:970,iotadieresistonos:912,iotalatin:617,iotatonos:943,iparen:9380,irigurmukhi:2674,ismallhiragana:12355,ismallkatakana:12451,ismallkatakanahalfwidth:65384,issharbengali:2554,istroke:616,isuperior:63213,iterationhiragana:12445,iterationkatakana:12541,itilde:297,itildebelow:7725,iubopomofo:12585,iucyrillic:1102,ivowelsignbengali:2495,ivowelsigndeva:2367,ivowelsigngujarati:2751,izhitsacyrillic:1141,izhitsadblgravecyrillic:1143,j:106,jaarmenian:1393,jabengali:2460,jadeva:2332,jagujarati:2716,jagurmukhi:2588,jbopomofo:12560,jcaron:496,jcircle:9433,jcircumflex:309,jcrossedtail:669,jdotlessstroke:607,jecyrillic:1112,jeemarabic:1580,jeemfinalarabic:65182,jeeminitialarabic:65183,jeemmedialarabic:65184,jeharabic:1688,jehfinalarabic:64395,jhabengali:2461,jhadeva:2333,jhagujarati:2717,jhagurmukhi:2589,jheharmenian:1403,jis:12292,jmonospace:65354,jparen:9381,jsuperior:690,k:107,kabashkircyrillic:1185,kabengali:2453,kacute:7729,kacyrillic:1082,kadescendercyrillic:1179,kadeva:2325,kaf:1499,kafarabic:1603,kafdagesh:64315,kafdageshhebrew:64315,kaffinalarabic:65242,kafhebrew:1499,kafinitialarabic:65243,kafmedialarabic:65244,kafrafehebrew:64333,kagujarati:2709,kagurmukhi:2581,kahiragana:12363,kahookcyrillic:1220,kakatakana:12459,kakatakanahalfwidth:65398,kappa:954,kappasymbolgreek:1008,kapyeounmieumkorean:12657,kapyeounphieuphkorean:12676,kapyeounpieupkorean:12664,kapyeounssangpieupkorean:12665,karoriisquare:13069,kashidaautoarabic:1600,kashidaautonosidebearingarabic:1600,kasmallkatakana:12533,kasquare:13188,kasraarabic:1616,kasratanarabic:1613,kastrokecyrillic:1183,katahiraprolongmarkhalfwidth:65392,kaverticalstrokecyrillic:1181,kbopomofo:12558,kcalsquare:13193,kcaron:489,kcedilla:311,kcircle:9434,kcommaaccent:311,kdotbelow:7731,keharmenian:1412,kehiragana:12369,kekatakana:12465,kekatakanahalfwidth:65401,kenarmenian:1391,kesmallkatakana:12534,kgreenlandic:312,khabengali:2454,khacyrillic:1093,khadeva:2326,khagujarati:2710,khagurmukhi:2582,khaharabic:1582,khahfinalarabic:65190,khahinitialarabic:65191,khahmedialarabic:65192,kheicoptic:999,khhadeva:2393,khhagurmukhi:2649,khieukhacirclekorean:12920,khieukhaparenkorean:12824,khieukhcirclekorean:12906,khieukhkorean:12619,khieukhparenkorean:12810,khokhaithai:3586,khokhonthai:3589,khokhuatthai:3587,khokhwaithai:3588,khomutthai:3675,khook:409,khorakhangthai:3590,khzsquare:13201,kihiragana:12365,kikatakana:12461,kikatakanahalfwidth:65399,kiroguramusquare:13077,kiromeetorusquare:13078,kirosquare:13076,kiyeokacirclekorean:12910,kiyeokaparenkorean:12814,kiyeokcirclekorean:12896,kiyeokkorean:12593,kiyeokparenkorean:12800,kiyeoksioskorean:12595,kjecyrillic:1116,klinebelow:7733,klsquare:13208,kmcubedsquare:13222,kmonospace:65355,kmsquaredsquare:13218,kohiragana:12371,kohmsquare:13248,kokaithai:3585,kokatakana:12467,kokatakanahalfwidth:65402,kooposquare:13086,koppacyrillic:1153,koreanstandardsymbol:12927,koroniscmb:835,kparen:9382,kpasquare:13226,ksicyrillic:1135,ktsquare:13263,kturned:670,kuhiragana:12367,kukatakana:12463,kukatakanahalfwidth:65400,kvsquare:13240,kwsquare:13246,l:108,labengali:2482,lacute:314,ladeva:2354,lagujarati:2738,lagurmukhi:2610,lakkhangyaothai:3653,lamaleffinalarabic:65276,lamalefhamzaabovefinalarabic:65272,lamalefhamzaaboveisolatedarabic:65271,lamalefhamzabelowfinalarabic:65274,lamalefhamzabelowisolatedarabic:65273,lamalefisolatedarabic:65275,lamalefmaddaabovefinalarabic:65270,lamalefmaddaaboveisolatedarabic:65269,lamarabic:1604,lambda:955,lambdastroke:411,lamed:1500,lameddagesh:64316,lameddageshhebrew:64316,
-lamedhebrew:1500,lamfinalarabic:65246,lamhahinitialarabic:64714,laminitialarabic:65247,lamjeeminitialarabic:64713,lamkhahinitialarabic:64715,lamlamhehisolatedarabic:65010,lammedialarabic:65248,lammeemhahinitialarabic:64904,lammeeminitialarabic:64716,largecircle:9711,lbar:410,lbelt:620,lbopomofo:12556,lcaron:318,lcedilla:316,lcircle:9435,lcircumflexbelow:7741,lcommaaccent:316,ldot:320,ldotaccent:320,ldotbelow:7735,ldotbelowmacron:7737,leftangleabovecmb:794,lefttackbelowcmb:792,less:60,lessequal:8804,lessequalorgreater:8922,lessmonospace:65308,lessorequivalent:8818,lessorgreater:8822,lessoverequal:8806,lesssmall:65124,lezh:622,lfblock:9612,lhookretroflex:621,lira:8356,liwnarmenian:1388,lj:457,ljecyrillic:1113,ll:63168,lladeva:2355,llagujarati:2739,llinebelow:7739,llladeva:2356,llvocalicbengali:2529,llvocalicdeva:2401,llvocalicvowelsignbengali:2531,llvocalicvowelsigndeva:2403,lmiddletilde:619,lmonospace:65356,lmsquare:13264,lochulathai:3628,logicaland:8743,logicalnot:172,logicalnotreversed:8976,logicalor:8744,lolingthai:3621,longs:383,lowlinecenterline:65102,lowlinecmb:818,lowlinedashed:65101,lozenge:9674,lparen:9383,lslash:322,lsquare:8467,lsuperior:63214,ltshade:9617,luthai:3622,lvocalicbengali:2444,lvocalicdeva:2316,lvocalicvowelsignbengali:2530,lvocalicvowelsigndeva:2402,lxsquare:13267,m:109,mabengali:2478,macron:175,macronbelowcmb:817,macroncmb:772,macronlowmod:717,macronmonospace:65507,macute:7743,madeva:2350,magujarati:2734,magurmukhi:2606,mahapakhhebrew:1444,mahapakhlefthebrew:1444,mahiragana:12414,maichattawalowleftthai:63637,maichattawalowrightthai:63636,maichattawathai:3659,maichattawaupperleftthai:63635,maieklowleftthai:63628,maieklowrightthai:63627,maiekthai:3656,maiekupperleftthai:63626,maihanakatleftthai:63620,maihanakatthai:3633,maitaikhuleftthai:63625,maitaikhuthai:3655,maitholowleftthai:63631,maitholowrightthai:63630,maithothai:3657,maithoupperleftthai:63629,maitrilowleftthai:63634,maitrilowrightthai:63633,maitrithai:3658,maitriupperleftthai:63632,maiyamokthai:3654,makatakana:12510,makatakanahalfwidth:65423,male:9794,mansyonsquare:13127,maqafhebrew:1470,mars:9794,masoracirclehebrew:1455,masquare:13187,mbopomofo:12551,mbsquare:13268,mcircle:9436,mcubedsquare:13221,mdotaccent:7745,mdotbelow:7747,meemarabic:1605,meemfinalarabic:65250,meeminitialarabic:65251,meemmedialarabic:65252,meemmeeminitialarabic:64721,meemmeemisolatedarabic:64584,meetorusquare:13133,mehiragana:12417,meizierasquare:13182,mekatakana:12513,mekatakanahalfwidth:65426,mem:1502,memdagesh:64318,memdageshhebrew:64318,memhebrew:1502,menarmenian:1396,merkhahebrew:1445,merkhakefulahebrew:1446,merkhakefulalefthebrew:1446,merkhalefthebrew:1445,mhook:625,mhzsquare:13202,middledotkatakanahalfwidth:65381,middot:183,mieumacirclekorean:12914,mieumaparenkorean:12818,mieumcirclekorean:12900,mieumkorean:12609,mieumpansioskorean:12656,mieumparenkorean:12804,mieumpieupkorean:12654,mieumsioskorean:12655,mihiragana:12415,mikatakana:12511,mikatakanahalfwidth:65424,minus:8722,minusbelowcmb:800,minuscircle:8854,minusmod:727,minusplus:8723,minute:8242,miribaarusquare:13130,mirisquare:13129,mlonglegturned:624,mlsquare:13206,mmcubedsquare:13219,mmonospace:65357,mmsquaredsquare:13215,mohiragana:12418,mohmsquare:13249,mokatakana:12514,mokatakanahalfwidth:65427,molsquare:13270,momathai:3617,moverssquare:13223,moverssquaredsquare:13224,mparen:9384,mpasquare:13227,mssquare:13235,msuperior:63215,mturned:623,mu:181,mu1:181,muasquare:13186,muchgreater:8811,muchless:8810,mufsquare:13196,mugreek:956,mugsquare:13197,muhiragana:12416,mukatakana:12512,mukatakanahalfwidth:65425,mulsquare:13205,multiply:215,mumsquare:13211,munahhebrew:1443,munahlefthebrew:1443,musicalnote:9834,musicalnotedbl:9835,musicflatsign:9837,musicsharpsign:9839,mussquare:13234,muvsquare:13238,muwsquare:13244,mvmegasquare:13241,mvsquare:13239,mwmegasquare:13247,mwsquare:13245,n:110,nabengali:2472,nabla:8711,nacute:324,nadeva:2344,nagujarati:2728,nagurmukhi:2600,nahiragana:12394,nakatakana:12490,nakatakanahalfwidth:65413,napostrophe:329,nasquare:13185,nbopomofo:12555,nbspace:160,ncaron:328,ncedilla:326,ncircle:9437,ncircumflexbelow:7755,ncommaaccent:326,ndotaccent:7749,ndotbelow:7751,nehiragana:12397,nekatakana:12493,nekatakanahalfwidth:65416,newsheqelsign:8362,nfsquare:13195,ngabengali:2457,ngadeva:2329,ngagujarati:2713,ngagurmukhi:2585,ngonguthai:3591,nhiragana:12435,nhookleft:626,nhookretroflex:627,nieunacirclekorean:12911,nieunaparenkorean:12815,nieuncieuckorean:12597,nieuncirclekorean:12897,nieunhieuhkorean:12598,nieunkorean:12596,nieunpansioskorean:12648,nieunparenkorean:12801,nieunsioskorean:12647,nieuntikeutkorean:12646,nihiragana:12395,nikatakana:12491,nikatakanahalfwidth:65414,nikhahitleftthai:63641,nikhahitthai:3661,nine:57,ninearabic:1641,ninebengali:2543,ninecircle:9320,ninecircleinversesansserif:10130,ninedeva:2415,ninegujarati:2799,ninegurmukhi:2671,ninehackarabic:1641,ninehangzhou:12329,nineideographicparen:12840,nineinferior:8329,ninemonospace:65305,nineoldstyle:63289,nineparen:9340,nineperiod:9360,ninepersian:1785,nineroman:8568,ninesuperior:8313,nineteencircle:9330,nineteenparen:9350,nineteenperiod:9370,ninethai:3673,nj:460,njecyrillic:1114,nkatakana:12531,nkatakanahalfwidth:65437,nlegrightlong:414,nlinebelow:7753,nmonospace:65358,nmsquare:13210,nnabengali:2467,nnadeva:2339,nnagujarati:2723,nnagurmukhi:2595,nnnadeva:2345,nohiragana:12398,nokatakana:12494,nokatakanahalfwidth:65417,nonbreakingspace:160,nonenthai:3603,nonuthai:3609,noonarabic:1606,noonfinalarabic:65254,noonghunnaarabic:1722,noonghunnafinalarabic:64415,nooninitialarabic:65255,noonjeeminitialarabic:64722,noonjeemisolatedarabic:64587,noonmedialarabic:65256,noonmeeminitialarabic:64725,noonmeemisolatedarabic:64590,noonnoonfinalarabic:64653,notcontains:8716,notelement:8713,notelementof:8713,notequal:8800,notgreater:8815,notgreaternorequal:8817,notgreaternorless:8825,notidentical:8802,notless:8814,notlessnorequal:8816,notparallel:8742,notprecedes:8832,notsubset:8836,notsucceeds:8833,notsuperset:8837,nowarmenian:1398,nparen:9385,nssquare:13233,nsuperior:8319,ntilde:241,nu:957,nuhiragana:12396,nukatakana:12492,nukatakanahalfwidth:65415,nuktabengali:2492,nuktadeva:2364,nuktagujarati:2748,nuktagurmukhi:2620,numbersign:35,numbersignmonospace:65283,numbersignsmall:65119,numeralsigngreek:884,numeralsignlowergreek:885,numero:8470,nun:1504,nundagesh:64320,nundageshhebrew:64320,nunhebrew:1504,nvsquare:13237,nwsquare:13243,nyabengali:2462,nyadeva:2334,nyagujarati:2718,nyagurmukhi:2590,o:111,oacute:243,oangthai:3629,obarred:629,obarredcyrillic:1257,obarreddieresiscyrillic:1259,obengali:2451,obopomofo:12571,obreve:335,ocandradeva:2321,ocandragujarati:2705,ocandravowelsigndeva:2377,ocandravowelsigngujarati:2761,ocaron:466,ocircle:9438,ocircumflex:244,ocircumflexacute:7889,ocircumflexdotbelow:7897,ocircumflexgrave:7891,ocircumflexhookabove:7893,ocircumflextilde:7895,ocyrillic:1086,odblacute:337,odblgrave:525,odeva:2323,odieresis:246,odieresiscyrillic:1255,odotbelow:7885,oe:339,oekorean:12634,ogonek:731,ogonekcmb:808,ograve:242,ogujarati:2707,oharmenian:1413,ohiragana:12362,ohookabove:7887,ohorn:417,ohornacute:7899,ohorndotbelow:7907,ohorngrave:7901,ohornhookabove:7903,ohorntilde:7905,ohungarumlaut:337,oi:419,oinvertedbreve:527,okatakana:12458,okatakanahalfwidth:65397,okorean:12631,olehebrew:1451,omacron:333,omacronacute:7763,omacrongrave:7761,omdeva:2384,omega:969,omega1:982,omegacyrillic:1121,omegalatinclosed:631,omegaroundcyrillic:1147,omegatitlocyrillic:1149,omegatonos:974,omgujarati:2768,omicron:959,omicrontonos:972,omonospace:65359,one:49,onearabic:1633,onebengali:2535,onecircle:9312,onecircleinversesansserif:10122,onedeva:2407,onedotenleader:8228,oneeighth:8539,onefitted:63196,onegujarati:2791,onegurmukhi:2663,onehackarabic:1633,onehalf:189,onehangzhou:12321,oneideographicparen:12832,oneinferior:8321,onemonospace:65297,onenumeratorbengali:2548,oneoldstyle:63281,oneparen:9332,oneperiod:9352,onepersian:1777,onequarter:188,oneroman:8560,onesuperior:185,onethai:3665,onethird:8531,oogonek:491,oogonekmacron:493,oogurmukhi:2579,oomatragurmukhi:2635,oopen:596,oparen:9386,openbullet:9702,option:8997,ordfeminine:170,ordmasculine:186,orthogonal:8735,oshortdeva:2322,oshortvowelsigndeva:2378,oslash:248,oslashacute:511,osmallhiragana:12361,osmallkatakana:12457,osmallkatakanahalfwidth:65387,ostrokeacute:511,osuperior:63216,otcyrillic:1151,otilde:245,otildeacute:7757,otildedieresis:7759,oubopomofo:12577,overline:8254,overlinecenterline:65098,overlinecmb:773,overlinedashed:65097,overlinedblwavy:65100,overlinewavy:65099,overscore:175,ovowelsignbengali:2507,ovowelsigndeva:2379,ovowelsigngujarati:2763,p:112,paampssquare:13184,paasentosquare:13099,pabengali:2474,pacute:7765,padeva:2346,pagedown:8671,pageup:8670,pagujarati:2730,pagurmukhi:2602,pahiragana:12401,paiyannoithai:3631,pakatakana:12497,palatalizationcyrilliccmb:1156,palochkacyrillic:1216,pansioskorean:12671,paragraph:182,parallel:8741,parenleft:40,parenleftaltonearabic:64830,parenleftbt:63725,parenleftex:63724,parenleftinferior:8333,parenleftmonospace:65288,parenleftsmall:65113,parenleftsuperior:8317,parenlefttp:63723,parenleftvertical:65077,parenright:41,parenrightaltonearabic:64831,parenrightbt:63736,parenrightex:63735,parenrightinferior:8334,parenrightmonospace:65289,parenrightsmall:65114,parenrightsuperior:8318,parenrighttp:63734,parenrightvertical:65078,partialdiff:8706,paseqhebrew:1472,pashtahebrew:1433,pasquare:13225,patah:1463,patah11:1463,patah1d:1463,patah2a:1463,patahhebrew:1463,patahnarrowhebrew:1463,patahquarterhebrew:1463,patahwidehebrew:1463,pazerhebrew:1441,pbopomofo:12550,pcircle:9439,pdotaccent:7767,pe:1508,pecyrillic:1087,pedagesh:64324,pedageshhebrew:64324,peezisquare:13115,pefinaldageshhebrew:64323,peharabic:1662,peharmenian:1402,pehebrew:1508,pehfinalarabic:64343,pehinitialarabic:64344,pehiragana:12410,pehmedialarabic:64345,pekatakana:12506,pemiddlehookcyrillic:1191,perafehebrew:64334,percent:37,percentarabic:1642,percentmonospace:65285,percentsmall:65130,period:46,periodarmenian:1417,periodcentered:183,periodhalfwidth:65377,periodinferior:63207,periodmonospace:65294,periodsmall:65106,periodsuperior:63208,perispomenigreekcmb:834,perpendicular:8869,perthousand:8240,peseta:8359,pfsquare:13194,phabengali:2475,phadeva:2347,phagujarati:2731,phagurmukhi:2603,phi:966,phi1:981,phieuphacirclekorean:12922,phieuphaparenkorean:12826,phieuphcirclekorean:12908,phieuphkorean:12621,phieuphparenkorean:12812,philatin:632,phinthuthai:3642,phisymbolgreek:981,phook:421,phophanthai:3614,phophungthai:3612,phosamphaothai:3616,pi:960,pieupacirclekorean:12915,pieupaparenkorean:12819,pieupcieuckorean:12662,pieupcirclekorean:12901,pieupkiyeokkorean:12658,pieupkorean:12610,pieupparenkorean:12805,pieupsioskiyeokkorean:12660,pieupsioskorean:12612,pieupsiostikeutkorean:12661,pieupthieuthkorean:12663,pieuptikeutkorean:12659,pihiragana:12404,pikatakana:12500,pisymbolgreek:982,piwrarmenian:1411,plus:43,plusbelowcmb:799,pluscircle:8853,plusminus:177,plusmod:726,plusmonospace:65291,plussmall:65122,plussuperior:8314,pmonospace:65360,pmsquare:13272,pohiragana:12413,pointingindexdownwhite:9759,pointingindexleftwhite:9756,pointingindexrightwhite:9758,pointingindexupwhite:9757,pokatakana:12509,poplathai:3611,postalmark:12306,postalmarkface:12320,pparen:9387,precedes:8826,prescription:8478,primemod:697,primereversed:8245,product:8719,projective:8965,prolongedkana:12540,propellor:8984,propersubset:8834,propersuperset:8835,proportion:8759,proportional:8733,psi:968,psicyrillic:1137,psilipneumatacyrilliccmb:1158,pssquare:13232,puhiragana:12407,pukatakana:12503,pvsquare:13236,pwsquare:13242,q:113,qadeva:2392,qadmahebrew:1448,qafarabic:1602,qaffinalarabic:65238,qafinitialarabic:65239,qafmedialarabic:65240,qamats:1464,qamats10:1464,qamats1a:1464,qamats1c:1464,qamats27:1464,qamats29:1464,qamats33:1464,qamatsde:1464,qamatshebrew:1464,qamatsnarrowhebrew:1464,qamatsqatanhebrew:1464,qamatsqatannarrowhebrew:1464,qamatsqatanquarterhebrew:1464,qamatsqatanwidehebrew:1464,qamatsquarterhebrew:1464,qamatswidehebrew:1464,qarneyparahebrew:1439,qbopomofo:12561,qcircle:9440,qhook:672,qmonospace:65361,qof:1511,qofdagesh:64327,qofdageshhebrew:64327,qofhebrew:1511,qparen:9388,quarternote:9833,qubuts:1467,qubuts18:1467,qubuts25:1467,qubuts31:1467,qubutshebrew:1467,qubutsnarrowhebrew:1467,qubutsquarterhebrew:1467,qubutswidehebrew:1467,question:63,questionarabic:1567,questionarmenian:1374,questiondown:191,questiondownsmall:63423,questiongreek:894,questionmonospace:65311,questionsmall:63295,quotedbl:34,quotedblbase:8222,quotedblleft:8220,quotedblmonospace:65282,quotedblprime:12318,quotedblprimereversed:12317,quotedblright:8221,quoteleft:8216,quoteleftreversed:8219,quotereversed:8219,quoteright:8217,quoterightn:329,quotesinglbase:8218,quotesingle:39,quotesinglemonospace:65287,r:114,raarmenian:1404,rabengali:2480,racute:341,radeva:2352,radical:8730,radicalex:63717,radoverssquare:13230,radoverssquaredsquare:13231,radsquare:13229,rafe:1471,rafehebrew:1471,ragujarati:2736,ragurmukhi:2608,rahiragana:12425,rakatakana:12521,rakatakanahalfwidth:65431,ralowerdiagonalbengali:2545,ramiddlediagonalbengali:2544,ramshorn:612,ratio:8758,rbopomofo:12566,rcaron:345,rcedilla:343,rcircle:9441,rcommaaccent:343,rdblgrave:529,rdotaccent:7769,rdotbelow:7771,rdotbelowmacron:7773,referencemark:8251,reflexsubset:8838,reflexsuperset:8839,registered:174,registersans:63720,registerserif:63194,reharabic:1585,reharmenian:1408,rehfinalarabic:65198,rehiragana:12428,rekatakana:12524,rekatakanahalfwidth:65434,resh:1512,reshdageshhebrew:64328,reshhebrew:1512,reversedtilde:8765,reviahebrew:1431,reviamugrashhebrew:1431,revlogicalnot:8976,rfishhook:638,rfishhookreversed:639,rhabengali:2525,rhadeva:2397,rho:961,rhook:637,rhookturned:635,rhookturnedsuperior:693,rhosymbolgreek:1009,rhotichookmod:734,rieulacirclekorean:12913,rieulaparenkorean:12817,rieulcirclekorean:12899,rieulhieuhkorean:12608,rieulkiyeokkorean:12602,rieulkiyeoksioskorean:12649,rieulkorean:12601,rieulmieumkorean:12603,rieulpansioskorean:12652,rieulparenkorean:12803,rieulphieuphkorean:12607,rieulpieupkorean:12604,rieulpieupsioskorean:12651,rieulsioskorean:12605,rieulthieuthkorean:12606,rieultikeutkorean:12650,rieulyeorinhieuhkorean:12653,rightangle:8735,righttackbelowcmb:793,righttriangle:8895,rihiragana:12426,rikatakana:12522,rikatakanahalfwidth:65432,ring:730,ringbelowcmb:805,ringcmb:778,ringhalfleft:703,ringhalfleftarmenian:1369,ringhalfleftbelowcmb:796,ringhalfleftcentered:723,ringhalfright:702,ringhalfrightbelowcmb:825,ringhalfrightcentered:722,rinvertedbreve:531,rittorusquare:13137,rlinebelow:7775,rlongleg:636,rlonglegturned:634,rmonospace:65362,rohiragana:12429,rokatakana:12525,rokatakanahalfwidth:65435,roruathai:3619,rparen:9389,rrabengali:2524,rradeva:2353,rragurmukhi:2652,rreharabic:1681,rrehfinalarabic:64397,rrvocalicbengali:2528,rrvocalicdeva:2400,rrvocalicgujarati:2784,rrvocalicvowelsignbengali:2500,rrvocalicvowelsigndeva:2372,rrvocalicvowelsigngujarati:2756,rsuperior:63217,rtblock:9616,rturned:633,rturnedsuperior:692,ruhiragana:12427,rukatakana:12523,rukatakanahalfwidth:65433,rupeemarkbengali:2546,rupeesignbengali:2547,rupiah:63197,ruthai:3620,rvocalicbengali:2443,rvocalicdeva:2315,rvocalicgujarati:2699,rvocalicvowelsignbengali:2499,rvocalicvowelsigndeva:2371,rvocalicvowelsigngujarati:2755,s:115,sabengali:2488,sacute:347,sacutedotaccent:7781,sadarabic:1589,sadeva:2360,sadfinalarabic:65210,sadinitialarabic:65211,sadmedialarabic:65212,sagujarati:2744,sagurmukhi:2616,sahiragana:12373,sakatakana:12469,sakatakanahalfwidth:65403,sallallahoualayhewasallamarabic:65018,samekh:1505,samekhdagesh:64321,samekhdageshhebrew:64321,samekhhebrew:1505,saraaathai:3634,saraaethai:3649,saraaimaimalaithai:3652,saraaimaimuanthai:3651,saraamthai:3635,saraathai:3632,saraethai:3648,saraiileftthai:63622,saraiithai:3637,saraileftthai:63621,saraithai:3636,saraothai:3650,saraueeleftthai:63624,saraueethai:3639,saraueleftthai:63623,sarauethai:3638,sarauthai:3640,sarauuthai:3641,sbopomofo:12569,scaron:353,scarondotaccent:7783,scedilla:351,schwa:601,schwacyrillic:1241,schwadieresiscyrillic:1243,schwahook:602,scircle:9442,scircumflex:349,scommaaccent:537,sdotaccent:7777,sdotbelow:7779,sdotbelowdotaccent:7785,seagullbelowcmb:828,second:8243,secondtonechinese:714,section:167,seenarabic:1587,seenfinalarabic:65202,seeninitialarabic:65203,seenmedialarabic:65204,segol:1462,segol13:1462,segol1f:1462,segol2c:1462,segolhebrew:1462,segolnarrowhebrew:1462,segolquarterhebrew:1462,segoltahebrew:1426,segolwidehebrew:1462,seharmenian:1405,sehiragana:12379,sekatakana:12475,sekatakanahalfwidth:65406,semicolon:59,semicolonarabic:1563,semicolonmonospace:65307,semicolonsmall:65108,semivoicedmarkkana:12444,semivoicedmarkkanahalfwidth:65439,sentisquare:13090,sentosquare:13091,seven:55,sevenarabic:1639,sevenbengali:2541,sevencircle:9318,sevencircleinversesansserif:10128,sevendeva:2413,seveneighths:8542,sevengujarati:2797,sevengurmukhi:2669,sevenhackarabic:1639,sevenhangzhou:12327,sevenideographicparen:12838,seveninferior:8327,sevenmonospace:65303,sevenoldstyle:63287,sevenparen:9338,sevenperiod:9358,sevenpersian:1783,sevenroman:8566,sevensuperior:8311,seventeencircle:9328,seventeenparen:9348,seventeenperiod:9368,seventhai:3671,sfthyphen:173,shaarmenian:1399,shabengali:2486,shacyrillic:1096,shaddaarabic:1617,shaddadammaarabic:64609,shaddadammatanarabic:64606,shaddafathaarabic:64608,shaddakasraarabic:64610,shaddakasratanarabic:64607,shade:9618,shadedark:9619,shadelight:9617,shademedium:9618,shadeva:2358,shagujarati:2742,shagurmukhi:2614,shalshelethebrew:1427,shbopomofo:12565,shchacyrillic:1097,sheenarabic:1588,sheenfinalarabic:65206,sheeninitialarabic:65207,sheenmedialarabic:65208,sheicoptic:995,sheqel:8362,sheqelhebrew:8362,sheva:1456,sheva115:1456,sheva15:1456,sheva22:1456,sheva2e:1456,shevahebrew:1456,shevanarrowhebrew:1456,shevaquarterhebrew:1456,shevawidehebrew:1456,shhacyrillic:1211,shimacoptic:1005,shin:1513,shindagesh:64329,shindageshhebrew:64329,shindageshshindot:64300,shindageshshindothebrew:64300,shindageshsindot:64301,shindageshsindothebrew:64301,shindothebrew:1473,shinhebrew:1513,shinshindot:64298,shinshindothebrew:64298,shinsindot:64299,shinsindothebrew:64299,shook:642,sigma:963,sigma1:962,sigmafinal:962,sigmalunatesymbolgreek:1010,sihiragana:12375,sikatakana:12471,sikatakanahalfwidth:65404,siluqhebrew:1469,siluqlefthebrew:1469,similar:8764,sindothebrew:1474,siosacirclekorean:12916,siosaparenkorean:12820,sioscieuckorean:12670,sioscirclekorean:12902,sioskiyeokkorean:12666,sioskorean:12613,siosnieunkorean:12667,siosparenkorean:12806,siospieupkorean:12669,siostikeutkorean:12668,six:54,sixarabic:1638,sixbengali:2540,sixcircle:9317,sixcircleinversesansserif:10127,sixdeva:2412,sixgujarati:2796,sixgurmukhi:2668,sixhackarabic:1638,sixhangzhou:12326,sixideographicparen:12837,sixinferior:8326,sixmonospace:65302,sixoldstyle:63286,sixparen:9337,sixperiod:9357,sixpersian:1782,sixroman:8565,sixsuperior:8310,sixteencircle:9327,sixteencurrencydenominatorbengali:2553,sixteenparen:9347,sixteenperiod:9367,sixthai:3670,slash:47,slashmonospace:65295,slong:383,slongdotaccent:7835,smileface:9786,smonospace:65363,sofpasuqhebrew:1475,softhyphen:173,softsigncyrillic:1100,sohiragana:12381,sokatakana:12477,sokatakanahalfwidth:65407,soliduslongoverlaycmb:824,solidusshortoverlaycmb:823,sorusithai:3625,sosalathai:3624,sosothai:3595,sosuathai:3626,space:32,spacehackarabic:32,spade:9824,spadesuitblack:9824,spadesuitwhite:9828,sparen:9390,squarebelowcmb:827,squarecc:13252,squarecm:13213,squarediagonalcrosshatchfill:9641,squarehorizontalfill:9636,squarekg:13199,squarekm:13214,squarekmcapital:13262,squareln:13265,squarelog:13266,squaremg:13198,squaremil:13269,squaremm:13212,squaremsquared:13217,squareorthogonalcrosshatchfill:9638,squareupperlefttolowerrightfill:9639,squareupperrighttolowerleftfill:9640,squareverticalfill:9637,squarewhitewithsmallblack:9635,srsquare:13275,ssabengali:2487,ssadeva:2359,ssagujarati:2743,ssangcieuckorean:12617,ssanghieuhkorean:12677,ssangieungkorean:12672,ssangkiyeokkorean:12594,ssangnieunkorean:12645,ssangpieupkorean:12611,ssangsioskorean:12614,ssangtikeutkorean:12600,ssuperior:63218,sterling:163,sterlingmonospace:65505,strokelongoverlaycmb:822,strokeshortoverlaycmb:821,subset:8834,subsetnotequal:8842,subsetorequal:8838,succeeds:8827,suchthat:8715,suhiragana:12377,sukatakana:12473,sukatakanahalfwidth:65405,sukunarabic:1618,summation:8721,sun:9788,superset:8835,supersetnotequal:8843,supersetorequal:8839,svsquare:13276,syouwaerasquare:13180,t:116,tabengali:2468,tackdown:8868,tackleft:8867,tadeva:2340,tagujarati:2724,tagurmukhi:2596,taharabic:1591,tahfinalarabic:65218,tahinitialarabic:65219,tahiragana:12383,tahmedialarabic:65220,taisyouerasquare:13181,takatakana:12479,takatakanahalfwidth:65408,tatweelarabic:1600,tau:964,tav:1514,tavdages:64330,tavdagesh:64330,tavdageshhebrew:64330,tavhebrew:1514,tbar:359,tbopomofo:12554,tcaron:357,tccurl:680,tcedilla:355,tcheharabic:1670,tchehfinalarabic:64379,tchehinitialarabic:64380,tchehmedialarabic:64381,tcircle:9443,tcircumflexbelow:7793,tcommaaccent:355,tdieresis:7831,tdotaccent:7787,tdotbelow:7789,tecyrillic:1090,tedescendercyrillic:1197,teharabic:1578,tehfinalarabic:65174,tehhahinitialarabic:64674,tehhahisolatedarabic:64524,tehinitialarabic:65175,tehiragana:12390,tehjeeminitialarabic:64673,tehjeemisolatedarabic:64523,tehmarbutaarabic:1577,tehmarbutafinalarabic:65172,tehmedialarabic:65176,tehmeeminitialarabic:64676,tehmeemisolatedarabic:64526,tehnoonfinalarabic:64627,tekatakana:12486,tekatakanahalfwidth:65411,telephone:8481,telephoneblack:9742,telishagedolahebrew:1440,telishaqetanahebrew:1449,tencircle:9321,tenideographicparen:12841,tenparen:9341,tenperiod:9361,tenroman:8569,tesh:679,tet:1496,tetdagesh:64312,tetdageshhebrew:64312,tethebrew:1496,tetsecyrillic:1205,tevirhebrew:1435,tevirlefthebrew:1435,thabengali:2469,thadeva:2341,thagujarati:2725,thagurmukhi:2597,thalarabic:1584,thalfinalarabic:65196,thanthakhatlowleftthai:63640,thanthakhatlowrightthai:63639,thanthakhatthai:3660,thanthakhatupperleftthai:63638,theharabic:1579,thehfinalarabic:65178,thehinitialarabic:65179,thehmedialarabic:65180,thereexists:8707,therefore:8756,theta:952,theta1:977,thetasymbolgreek:977,thieuthacirclekorean:12921,thieuthaparenkorean:12825,thieuthcirclekorean:12907,thieuthkorean:12620,thieuthparenkorean:12811,thirteencircle:9324,thirteenparen:9344,thirteenperiod:9364,thonangmonthothai:3601,thook:429,thophuthaothai:3602,thorn:254,thothahanthai:3607,thothanthai:3600,thothongthai:3608,thothungthai:3606,thousandcyrillic:1154,thousandsseparatorarabic:1644,thousandsseparatorpersian:1644,three:51,threearabic:1635,threebengali:2537,threecircle:9314,threecircleinversesansserif:10124,threedeva:2409,threeeighths:8540,threegujarati:2793,threegurmukhi:2665,threehackarabic:1635,threehangzhou:12323,threeideographicparen:12834,threeinferior:8323,threemonospace:65299,threenumeratorbengali:2550,threeoldstyle:63283,threeparen:9334,threeperiod:9354,threepersian:1779,threequarters:190,threequartersemdash:63198,threeroman:8562,threesuperior:179,threethai:3667,thzsquare:13204,tihiragana:12385,tikatakana:12481,tikatakanahalfwidth:65409,tikeutacirclekorean:12912,tikeutaparenkorean:12816,tikeutcirclekorean:12898,tikeutkorean:12599,tikeutparenkorean:12802,tilde:732,tildebelowcmb:816,tildecmb:771,tildecomb:771,tildedoublecmb:864,tildeoperator:8764,tildeoverlaycmb:820,tildeverticalcmb:830,timescircle:8855,tipehahebrew:1430,tipehalefthebrew:1430,tippigurmukhi:2672,titlocyrilliccmb:1155,tiwnarmenian:1407,tlinebelow:7791,tmonospace:65364,toarmenian:1385,tohiragana:12392,tokatakana:12488,tokatakanahalfwidth:65412,tonebarextrahighmod:741,tonebarextralowmod:745,tonebarhighmod:742,tonebarlowmod:744,tonebarmidmod:743,tonefive:445,tonesix:389,tonetwo:424,tonos:900,tonsquare:13095,topatakthai:3599,tortoiseshellbracketleft:12308,tortoiseshellbracketleftsmall:65117,tortoiseshellbracketleftvertical:65081,tortoiseshellbracketright:12309,tortoiseshellbracketrightsmall:65118,tortoiseshellbracketrightvertical:65082,totaothai:3605,tpalatalhook:427,tparen:9391,trademark:8482,trademarksans:63722,trademarkserif:63195,tretroflexhook:648,triagdn:9660,triaglf:9668,triagrt:9658,triagup:9650,ts:678,tsadi:1510,tsadidagesh:64326,tsadidageshhebrew:64326,tsadihebrew:1510,tsecyrillic:1094,tsere:1461,tsere12:1461,tsere1e:1461,tsere2b:1461,tserehebrew:1461,tserenarrowhebrew:1461,tserequarterhebrew:1461,tserewidehebrew:1461,tshecyrillic:1115,tsuperior:63219,ttabengali:2463,ttadeva:2335,ttagujarati:2719,ttagurmukhi:2591,tteharabic:1657,ttehfinalarabic:64359,ttehinitialarabic:64360,ttehmedialarabic:64361,tthabengali:2464,tthadeva:2336,tthagujarati:2720,tthagurmukhi:2592,tturned:647,tuhiragana:12388,tukatakana:12484,tukatakanahalfwidth:65410,tusmallhiragana:12387,tusmallkatakana:12483,tusmallkatakanahalfwidth:65391,twelvecircle:9323,twelveparen:9343,twelveperiod:9363,twelveroman:8571,twentycircle:9331,twentyhangzhou:21316,twentyparen:9351,twentyperiod:9371,two:50,twoarabic:1634,twobengali:2536,twocircle:9313,twocircleinversesansserif:10123,twodeva:2408,twodotenleader:8229,twodotleader:8229,twodotleadervertical:65072,twogujarati:2792,twogurmukhi:2664,twohackarabic:1634,twohangzhou:12322,twoideographicparen:12833,twoinferior:8322,twomonospace:65298,twonumeratorbengali:2549,twooldstyle:63282,twoparen:9333,twoperiod:9353,twopersian:1778,tworoman:8561,twostroke:443,twosuperior:178,twothai:3666,twothirds:8532,u:117,uacute:250,ubar:649,ubengali:2441,ubopomofo:12584,ubreve:365,ucaron:468,ucircle:9444,ucircumflex:251,ucircumflexbelow:7799,ucyrillic:1091,udattadeva:2385,udblacute:369,udblgrave:533,udeva:2313,udieresis:252,udieresisacute:472,udieresisbelow:7795,udieresiscaron:474,udieresiscyrillic:1265,udieresisgrave:476,udieresismacron:470,udotbelow:7909,ugrave:249,ugujarati:2697,ugurmukhi:2569,uhiragana:12358,uhookabove:7911,uhorn:432,uhornacute:7913,uhorndotbelow:7921,uhorngrave:7915,uhornhookabove:7917,uhorntilde:7919,uhungarumlaut:369,uhungarumlautcyrillic:1267,uinvertedbreve:535,ukatakana:12454,ukatakanahalfwidth:65395,ukcyrillic:1145,ukorean:12636,umacron:363,umacroncyrillic:1263,umacrondieresis:7803,umatragurmukhi:2625,umonospace:65365,underscore:95,underscoredbl:8215,underscoremonospace:65343,underscorevertical:65075,underscorewavy:65103,union:8746,universal:8704,uogonek:371,uparen:9392,upblock:9600,upperdothebrew:1476,upsilon:965,upsilondieresis:971,upsilondieresistonos:944,upsilonlatin:650,upsilontonos:973,uptackbelowcmb:797,uptackmod:724,uragurmukhi:2675,uring:367,ushortcyrillic:1118,usmallhiragana:12357,usmallkatakana:12453,usmallkatakanahalfwidth:65385,ustraightcyrillic:1199,ustraightstrokecyrillic:1201,utilde:361,utildeacute:7801,utildebelow:7797,uubengali:2442,uudeva:2314,uugujarati:2698,uugurmukhi:2570,uumatragurmukhi:2626,uuvowelsignbengali:2498,uuvowelsigndeva:2370,uuvowelsigngujarati:2754,uvowelsignbengali:2497,uvowelsigndeva:2369,uvowelsigngujarati:2753,v:118,vadeva:2357,vagujarati:2741,vagurmukhi:2613,vakatakana:12535,vav:1493,vavdagesh:64309,vavdagesh65:64309,vavdageshhebrew:64309,vavhebrew:1493,vavholam:64331,vavholamhebrew:64331,vavvavhebrew:1520,vavyodhebrew:1521,vcircle:9445,vdotbelow:7807,vecyrillic:1074,veharabic:1700,vehfinalarabic:64363,vehinitialarabic:64364,vehmedialarabic:64365,vekatakana:12537,venus:9792,verticalbar:124,verticallineabovecmb:781,verticallinebelowcmb:809,verticallinelowmod:716,verticallinemod:712,vewarmenian:1406,vhook:651,vikatakana:12536,viramabengali:2509,viramadeva:2381,viramagujarati:2765,visargabengali:2435,visargadeva:2307,visargagujarati:2691,vmonospace:65366,voarmenian:1400,voicediterationhiragana:12446,voicediterationkatakana:12542,voicedmarkkana:12443,voicedmarkkanahalfwidth:65438,vokatakana:12538,vparen:9393,vtilde:7805,vturned:652,vuhiragana:12436,vukatakana:12532,w:119,wacute:7811,waekorean:12633,wahiragana:12431,wakatakana:12527,wakatakanahalfwidth:65436,wakorean:12632,wasmallhiragana:12430,wasmallkatakana:12526,wattosquare:13143,wavedash:12316,wavyunderscorevertical:65076,wawarabic:1608,wawfinalarabic:65262,wawhamzaabovearabic:1572,wawhamzaabovefinalarabic:65158,wbsquare:13277,wcircle:9446,wcircumflex:373,wdieresis:7813,wdotaccent:7815,wdotbelow:7817,wehiragana:12433,weierstrass:8472,wekatakana:12529,wekorean:12638,weokorean:12637,wgrave:7809,whitebullet:9702,whitecircle:9675,whitecircleinverse:9689,whitecornerbracketleft:12302,whitecornerbracketleftvertical:65091,whitecornerbracketright:12303,whitecornerbracketrightvertical:65092,whitediamond:9671,whitediamondcontainingblacksmalldiamond:9672,whitedownpointingsmalltriangle:9663,whitedownpointingtriangle:9661,whiteleftpointingsmalltriangle:9667,whiteleftpointingtriangle:9665,whitelenticularbracketleft:12310,whitelenticularbracketright:12311,whiterightpointingsmalltriangle:9657,whiterightpointingtriangle:9655,whitesmallsquare:9643,whitesmilingface:9786,whitesquare:9633,whitestar:9734,whitetelephone:9743,whitetortoiseshellbracketleft:12312,whitetortoiseshellbracketright:12313,whiteuppointingsmalltriangle:9653,whiteuppointingtriangle:9651,wihiragana:12432,wikatakana:12528,wikorean:12639,wmonospace:65367,wohiragana:12434,wokatakana:12530,wokatakanahalfwidth:65382,won:8361,wonmonospace:65510,wowaenthai:3623,wparen:9394,wring:7832,wsuperior:695,wturned:653,wynn:447,x:120,xabovecmb:829,xbopomofo:12562,xcircle:9447,xdieresis:7821,xdotaccent:7819,xeharmenian:1389,xi:958,xmonospace:65368,xparen:9395,xsuperior:739,y:121,yaadosquare:13134,yabengali:2479,yacute:253,yadeva:2351,yaekorean:12626,yagujarati:2735,yagurmukhi:2607,yahiragana:12420,yakatakana:12516,yakatakanahalfwidth:65428,yakorean:12625,yamakkanthai:3662,yasmallhiragana:12419,yasmallkatakana:12515,yasmallkatakanahalfwidth:65388,yatcyrillic:1123,ycircle:9448,ycircumflex:375,ydieresis:255,ydotaccent:7823,ydotbelow:7925,yeharabic:1610,yehbarreearabic:1746,yehbarreefinalarabic:64431,yehfinalarabic:65266,yehhamzaabovearabic:1574,yehhamzaabovefinalarabic:65162,yehhamzaaboveinitialarabic:65163,yehhamzaabovemedialarabic:65164,yehinitialarabic:65267,yehmedialarabic:65268,yehmeeminitialarabic:64733,yehmeemisolatedarabic:64600,yehnoonfinalarabic:64660,yehthreedotsbelowarabic:1745,yekorean:12630,yen:165,yenmonospace:65509,yeokorean:12629,yeorinhieuhkorean:12678,yerahbenyomohebrew:1450,yerahbenyomolefthebrew:1450,yericyrillic:1099,yerudieresiscyrillic:1273,yesieungkorean:12673,yesieungpansioskorean:12675,yesieungsioskorean:12674,yetivhebrew:1434,ygrave:7923,yhook:436,yhookabove:7927,yiarmenian:1397,yicyrillic:1111,yikorean:12642,yinyang:9775,yiwnarmenian:1410,ymonospace:65369,yod:1497,yoddagesh:64313,yoddageshhebrew:64313,yodhebrew:1497,yodyodhebrew:1522,yodyodpatahhebrew:64287,yohiragana:12424,yoikorean:12681,yokatakana:12520,yokatakanahalfwidth:65430,yokorean:12635,yosmallhiragana:12423,yosmallkatakana:12519,yosmallkatakanahalfwidth:65390,yotgreek:1011,yoyaekorean:12680,yoyakorean:12679,yoyakthai:3618,yoyingthai:3597,yparen:9396,ypogegrammeni:890,ypogegrammenigreekcmb:837,yr:422,yring:7833,ysuperior:696,ytilde:7929,yturned:654,yuhiragana:12422,yuikorean:12684,yukatakana:12518,yukatakanahalfwidth:65429,yukorean:12640,yusbigcyrillic:1131,yusbigiotifiedcyrillic:1133,yuslittlecyrillic:1127,yuslittleiotifiedcyrillic:1129,yusmallhiragana:12421,yusmallkatakana:12517,yusmallkatakanahalfwidth:65389,yuyekorean:12683,yuyeokorean:12682,yyabengali:2527,yyadeva:2399,z:122,zaarmenian:1382,zacute:378,zadeva:2395,zagurmukhi:2651,zaharabic:1592,zahfinalarabic:65222,zahinitialarabic:65223,zahiragana:12374,zahmedialarabic:65224,zainarabic:1586,zainfinalarabic:65200,zakatakana:12470,zaqefgadolhebrew:1429,zaqefqatanhebrew:1428,zarqahebrew:1432,zayin:1494,zayindagesh:64310,zayindageshhebrew:64310,zayinhebrew:1494,zbopomofo:12567,zcaron:382,zcircle:9449,zcircumflex:7825,zcurl:657,zdot:380,zdotaccent:380,zdotbelow:7827,zecyrillic:1079,zedescendercyrillic:1177,zedieresiscyrillic:1247,zehiragana:12380,zekatakana:12476,zero:48,zeroarabic:1632,zerobengali:2534,zerodeva:2406,zerogujarati:2790,zerogurmukhi:2662,zerohackarabic:1632,zeroinferior:8320,zeromonospace:65296,zerooldstyle:63280,
-var c=k(b,a,!1);c.language=b,c.relevance>e.relevance&&(e=c),c.relevance>d.relevance&&(e=d,d=c)}}),e.language&&(d.second_best=e),d}function m(a){return v.tabReplace&&(a=a.replace(/^((<[^>]+>|\t)+)/gm,function(a,b){return b.replace(/\t/g,v.tabReplace)})),v.useBR&&(a=a.replace(/\n/g,"<br>")),a}function n(a,b,c){var d=b?x[b]:c,e=[a.trim()];return a.match(/\bhljs\b/)||e.push("hljs"),-1===a.indexOf(d)&&e.push(d),e.join(" ").trim()}function o(a){var b=f(a);if(!e(b)){var c;v.useBR?(c=document.createElementNS("http://www.w3.org/1999/xhtml","div"),c.innerHTML=a.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n")):c=a;var d=c.textContent,g=b?k(b,d,!0):l(d),j=h(c);if(j.length){var o=document.createElementNS("http://www.w3.org/1999/xhtml","div");o.innerHTML=g.value,g.value=i(j,h(o),d)}g.value=m(g.value),a.innerHTML=g.value,a.className=n(a.className,b,g.language),a.result={language:g.language,re:g.relevance},g.second_best&&(a.second_best={language:g.second_best.language,re:g.second_best.relevance})}}function p(a){v=g(v,a)}function q(){if(!q.called){q.called=!0;var a=document.querySelectorAll("pre code");Array.prototype.forEach.call(a,o)}}function r(){addEventListener("DOMContentLoaded",q,!1),addEventListener("load",q,!1)}function s(b,c){var d=w[b]=c(a);d.aliases&&d.aliases.forEach(function(a){x[a]=b})}function t(){return Object.keys(w)}function u(a){return a=(a||"").toLowerCase(),w[a]||w[x[a]]}var v={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},w={},x={};return a.highlight=k,a.highlightAuto=l,a.fixMarkup=m,a.highlightBlock=o,a.configure=p,a.initHighlighting=q,a.initHighlightingOnLoad=r,a.registerLanguage=s,a.listLanguages=t,a.getLanguage=u,a.inherit=g,a.IDENT_RE="[a-zA-Z]\\w*",a.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",a.NUMBER_RE="\\b\\d+(\\.\\d+)?",a.C_NUMBER_RE="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",a.BINARY_NUMBER_RE="\\b(0b[01]+)",a.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",a.BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0},a.APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[a.BACKSLASH_ESCAPE]},a.QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[a.BACKSLASH_ESCAPE]},a.PHRASAL_WORDS_MODE={begin:/\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/},a.COMMENT=function(b,c,d){var e=a.inherit({className:"comment",begin:b,end:c,contains:[]},d||{});return e.contains.push(a.PHRASAL_WORDS_MODE),e.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),e},a.C_LINE_COMMENT_MODE=a.COMMENT("//","$"),a.C_BLOCK_COMMENT_MODE=a.COMMENT("/\\*","\\*/"),a.HASH_COMMENT_MODE=a.COMMENT("#","$"),a.NUMBER_MODE={className:"number",begin:a.NUMBER_RE,relevance:0},a.C_NUMBER_MODE={className:"number",begin:a.C_NUMBER_RE,relevance:0},a.BINARY_NUMBER_MODE={className:"number",begin:a.BINARY_NUMBER_RE,relevance:0},a.CSS_NUMBER_MODE={className:"number",begin:a.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},a.REGEXP_MODE={className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[a.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[a.BACKSLASH_ESCAPE]}]},a.TITLE_MODE={className:"title",begin:a.IDENT_RE,relevance:0},a.UNDERSCORE_TITLE_MODE={className:"title",begin:a.UNDERSCORE_IDENT_RE,relevance:0},a.registerLanguage("1c",function(a){var b="[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*",c="возврат дата для если и или иначе иначеесли исключение конецесли конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл число экспорт",d="ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить стрколичествострок стрполучитьстроку  стрчисловхождений сформироватьпозициюдокумента счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты установитьтана установитьтапо фиксшаблон формат цел шаблон",e={className:"dquote",begin:'""'},f={className:"string",begin:'"',end:'"|$',contains:[e]},g={className:"string",begin:"\\|",end:'"|$',contains:[e]};return{case_insensitive:!0,lexemes:b,keywords:{keyword:c,built_in:d},contains:[a.C_LINE_COMMENT_MODE,a.NUMBER_MODE,f,g,{className:"function",begin:"(процедура|функция)",end:"$",lexemes:b,keywords:"процедура функция",contains:[a.inherit(a.TITLE_MODE,{begin:b}),{className:"tail",endsWithParent:!0,contains:[{className:"params",begin:"\\(",end:"\\)",lexemes:b,keywords:"знач",contains:[f,g]},{className:"export",begin:"экспорт",endsWithParent:!0,lexemes:b,keywords:"экспорт",contains:[a.C_LINE_COMMENT_MODE]}]},a.C_LINE_COMMENT_MODE]},{className:"preprocessor",begin:"#",end:"$"},{className:"date",begin:"'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})'"}]}}),a.registerLanguage("accesslog",function(a){return{contains:[{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+\\b",relevance:0},{className:"string",begin:'"(GET|POST|HEAD|PUT|DELETE|CONNECT|OPTIONS|PATCH|TRACE)',end:'"',keywords:"GET POST HEAD PUT DELETE CONNECT OPTIONS PATCH TRACE",illegal:"\\n",relevance:10},{className:"string",begin:/\[/,end:/\]/,illegal:"\\n"},{className:"string",begin:'"',end:'"',illegal:"\\n"}]}}),a.registerLanguage("actionscript",function(a){var b="[a-zA-Z_$][a-zA-Z0-9_$]*",c="([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)",d={className:"rest_arg",begin:"[.]{3}",end:b,relevance:10};return{aliases:["as"],keywords:{keyword:"as break case catch class const continue default delete do dynamic each else extends final finally for function get if implements import in include instanceof interface internal is namespace native new override package private protected public return set static super switch this throw try typeof use var void while with",literal:"true false null undefined"},contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.C_NUMBER_MODE,{className:"package",beginKeywords:"package",end:"{",contains:[a.TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,contains:[{beginKeywords:"extends implements"},a.TITLE_MODE]},{className:"preprocessor",beginKeywords:"import include",end:";"},{className:"function",beginKeywords:"function",end:"[{;]",excludeEnd:!0,illegal:"\\S",contains:[a.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,d]},{className:"type",begin:":",end:c,relevance:10}]}],illegal:/#/}}),a.registerLanguage("apache",function(a){var b={className:"number",begin:"[\\$%]\\d+"};return{aliases:["apacheconf"],case_insensitive:!0,contains:[a.HASH_COMMENT_MODE,{className:"tag",begin:"</?",end:">"},{className:"keyword",begin:/\w+/,relevance:0,keywords:{common:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{end:/$/,relevance:0,keywords:{literal:"on off all"},contains:[{className:"sqbracket",begin:"\\s\\[",end:"\\]$"},{className:"cbracket",begin:"[\\$%]\\{",end:"\\}",contains:["self",b]},b,a.QUOTE_STRING_MODE]}}],illegal:/\S/}}),a.registerLanguage("applescript",function(a){var b=a.inherit(a.QUOTE_STRING_MODE,{illegal:""}),c={className:"params",begin:"\\(",end:"\\)",contains:["self",a.C_NUMBER_MODE,b]},d=a.COMMENT("--","$"),e=a.COMMENT("\\(\\*","\\*\\)",{contains:["self",d]}),f=[d,e,a.HASH_COMMENT_MODE];return{aliases:["osascript"],keywords:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without",constant:"AppleScript false linefeed return pi quote result space tab true",type:"alias application boolean class constant date file integer list number real record string text",command:"activate beep count delay launch log offset read round run say summarize write",property:"character characters contents day frontmost id item length month name paragraph paragraphs rest reverse running time version weekday word words year"},contains:[b,a.C_NUMBER_MODE,{className:"type",begin:"\\bPOSIX file\\b"},{className:"command",begin:"\\b(clipboard info|the clipboard|info for|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|current date|do shell script|get volume settings|random number|set volume|system attribute|system info|time to GMT|(load|run|store) script|scripting components|ASCII (character|number)|localized string|choose (application|color|file|file name|folder|from list|remote application|URL)|display (alert|dialog))\\b|^\\s*return\\b"},{className:"constant",begin:"\\b(text item delimiters|current application|missing value)\\b"},{className:"keyword",begin:"\\b(apart from|aside from|instead of|out of|greater than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|less) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|after)|a (ref|reference))\\b"},{className:"property",begin:"\\b(POSIX path|(date|time) string|quoted form)\\b"},{className:"function_start",beginKeywords:"on",illegal:"[${=;\\n]",contains:[a.UNDERSCORE_TITLE_MODE,c]}].concat(f),illegal:"//|->|=>|\\[\\["}}),a.registerLanguage("armasm",function(a){return{case_insensitive:!0,aliases:["arm"],lexemes:"\\.?"+a.IDENT_RE,keywords:{literal:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 ",preprocessor:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"{PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @ "},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?",end:"\\s"},a.COMMENT("[;@]","$",{relevance:0}),a.C_BLOCK_COMMENT_MODE,a.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"label",variants:[{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"[=#]\\w+"}],relevance:0}]}}),a.registerLanguage("xml",function(a){var b="[A-Za-z0-9\\._:-]+",c={begin:/<\?(php)?(?!\w)/,end:/\?>/,subLanguage:"php"},d={endsWithParent:!0,illegal:/</,relevance:0,contains:[c,{className:"attribute",begin:b,relevance:0},{begin:"=",relevance:0,contains:[{className:"value",contains:[c],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/},{begin:/[^\s\/>]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xsl","plist"],case_insensitive:!0,contains:[{className:"doctype",begin:"<!DOCTYPE",end:">",relevance:10,contains:[{begin:"\\[",end:"\\]"}]},a.COMMENT("<!--","-->",{relevance:10}),{className:"cdata",begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},{className:"tag",begin:"<style(?=\\s|>|$)",end:">",keywords:{title:"style"},contains:[d],starts:{end:"</style>",returnEnd:!0,subLanguage:"css"}},{className:"tag",begin:"<script(?=\\s|>|$)",end:">",keywords:{title:"script"},contains:[d],starts:{end:"</script>",returnEnd:!0,subLanguage:["actionscript","javascript","handlebars"]}},c,{className:"pi",begin:/<\?\w+/,end:/\?>/,relevance:10},{className:"tag",begin:"</?",end:"/?>",contains:[{className:"title",begin:/[^ \/><\n\t]+/,relevance:0},d]}]}}),a.registerLanguage("asciidoc",function(a){return{aliases:["adoc"],contains:[a.COMMENT("^/{4,}\\n","\\n/{4,}$",{relevance:10}),a.COMMENT("^//","$",{relevance:0}),{className:"title",begin:"^\\.\\w.*$"},{begin:"^[=\\*]{4,}\\n",end:"\\n^[=\\*]{4,}$",relevance:10},{className:"header",begin:"^(={1,5}) .+?( \\1)?$",relevance:10},{className:"header",begin:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$",relevance:10},{className:"attribute",begin:"^:.+?:",end:"\\s",excludeEnd:!0,relevance:10},{className:"attribute",begin:"^\\[.+?\\]$",relevance:0},{className:"blockquote",begin:"^_{4,}\\n",end:"\\n_{4,}$",relevance:10},{className:"code",begin:"^[\\-\\.]{4,}\\n",end:"\\n[\\-\\.]{4,}$",relevance:10},{begin:"^\\+{4,}\\n",end:"\\n\\+{4,}$",contains:[{begin:"<",end:">",subLanguage:"xml",relevance:0}],relevance:10},{className:"bullet",begin:"^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+"},{className:"label",begin:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",relevance:10},{className:"strong",begin:"\\B\\*(?![\\*\\s])",end:"(\\n{2}|\\*)",contains:[{begin:"\\\\*\\w",relevance:0}]},{className:"emphasis",begin:"\\B'(?!['\\s])",end:"(\\n{2}|')",contains:[{begin:"\\\\'\\w",relevance:0}],relevance:0},{className:"emphasis",begin:"_(?![_\\s])",end:"(\\n{2}|_)",relevance:0},{className:"smartquote",variants:[{begin:"``.+?''"},{begin:"`.+?'"}]},{className:"code",begin:"(`.+?`|\\+.+?\\+)",relevance:0},{className:"code",begin:"^[ \\t]",end:"$",relevance:0},{className:"horizontal_rule",begin:"^'{3,}[ \\t]*$",relevance:10},{begin:"(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]",returnBegin:!0,contains:[{begin:"(link|image:?):",relevance:0},{className:"link_url",begin:"\\w",end:"[^\\[]+",relevance:0},{className:"link_label",begin:"\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0,relevance:0}],relevance:10}]}}),a.registerLanguage("aspectj",function(a){var b="false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else extends implements break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws privileged aspectOf adviceexecution proceed cflowbelow cflow initialization preinitialization staticinitialization withincode target within execution getWithinTypeName handler thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents warning error soft precedence thisAspectInstance",c="get set args call";return{keywords:b,illegal:/<\/|#/,contains:[a.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"aspect",beginKeywords:"aspect",end:/[{;=]/,excludeEnd:!0,illegal:/[:;"\[\]]/,contains:[{beginKeywords:"extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton"},a.UNDERSCORE_TITLE_MODE,{begin:/\([^\)]*/,end:/[)]+/,keywords:b+" "+c,excludeEnd:!1}]},{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,relevance:0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},{beginKeywords:"pointcut after before around throwing returning",end:/[)]/,excludeEnd:!1,illegal:/["\[\]]/,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,contains:[a.UNDERSCORE_TITLE_MODE]}]},{begin:/[:]/,returnBegin:!0,end:/[{;]/,relevance:0,excludeEnd:!1,keywords:b,illegal:/["\[\]]/,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",keywords:b+" "+c},a.QUOTE_STRING_MODE]},{beginKeywords:"new throw",relevance:0},{className:"function",begin:/\w+ +\w+(\.)?\w+\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,returnBegin:!0,end:/[{;=]/,keywords:b,excludeEnd:!0,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[a.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,relevance:0,keywords:b,contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,a.C_BLOCK_COMMENT_MODE]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},a.C_NUMBER_MODE,{className:"annotation",begin:"@[A-Za-z]+"}]}}),a.registerLanguage("autohotkey",function(a){var b={className:"escape",begin:"`[\\s\\S]"},c=a.COMMENT(";","$",{relevance:0}),d=[{className:"built_in",begin:"A_[a-zA-Z0-9]+"},{className:"built_in",beginKeywords:"ComSpec Clipboard ClipboardAll ErrorLevel"}];return{case_insensitive:!0,keywords:{keyword:"Break Continue Else Gosub If Loop Return While",literal:"A true false NOT AND OR"},contains:d.concat([b,a.inherit(a.QUOTE_STRING_MODE,{contains:[b]}),c,{className:"number",begin:a.NUMBER_RE,relevance:0},{className:"var_expand",begin:"%",end:"%",illegal:"\\n",contains:[b]},{className:"label",contains:[b],variants:[{begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{begin:",\\s*,",relevance:10}])}}),a.registerLanguage("autoit",function(a){var b="ByRef Case Const ContinueCase ContinueLoop Default Dim Do Else ElseIf EndFunc EndIf EndSelect EndSwitch EndWith Enum Exit ExitLoop For Func Global If In Local Next ReDim Return Select Static Step Switch Then To Until Volatile WEnd While With",c="True False And Null Not Or",d="Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Opt Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown TCPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend UDPShutdown UDPStartup VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive WinWaitClose WinWaitNotActive Array1DToHistogram ArrayAdd ArrayBinarySearch ArrayColDelete ArrayColInsert ArrayCombinations ArrayConcatenate ArrayDelete ArrayDisplay ArrayExtract ArrayFindAll ArrayInsert ArrayMax ArrayMaxIndex ArrayMin ArrayMinIndex ArrayPermute ArrayPop ArrayPush ArrayReverse ArraySearch ArrayShuffle ArraySort ArraySwap ArrayToClip ArrayToString ArrayTranspose ArrayTrim ArrayUnique Assert ChooseColor ChooseFont ClipBoard_ChangeChain ClipBoard_Close ClipBoard_CountFormats ClipBoard_Empty ClipBoard_EnumFormats ClipBoard_FormatStr ClipBoard_GetData ClipBoard_GetDataEx ClipBoard_GetFormatName ClipBoard_GetOpenWindow ClipBoard_GetOwner ClipBoard_GetPriorityFormat ClipBoard_GetSequenceNumber ClipBoard_GetViewer ClipBoard_IsFormatAvailable ClipBoard_Open ClipBoard_RegisterFormat ClipBoard_SetData ClipBoard_SetDataEx ClipBoard_SetViewer ClipPutFile ColorConvertHSLtoRGB ColorConvertRGBtoHSL ColorGetBlue ColorGetCOLORREF ColorGetGreen ColorGetRed ColorGetRGB ColorSetCOLORREF ColorSetRGB Crypt_DecryptData Crypt_DecryptFile Crypt_DeriveKey Crypt_DestroyKey Crypt_EncryptData Crypt_EncryptFile Crypt_GenRandom Crypt_HashData Crypt_HashFile Crypt_Shutdown Crypt_Startup DateAdd DateDayOfWeek DateDaysInMonth DateDiff DateIsLeapYear DateIsValid DateTimeFormat DateTimeSplit DateToDayOfWeek DateToDayOfWeekISO DateToDayValue DateToMonth Date_Time_CompareFileTime Date_Time_DOSDateTimeToArray Date_Time_DOSDateTimeToFileTime Date_Time_DOSDateTimeToStr Date_Time_DOSDateToArray Date_Time_DOSDateToStr Date_Time_DOSTimeToArray Date_Time_DOSTimeToStr Date_Time_EncodeFileTime Date_Time_EncodeSystemTime Date_Time_FileTimeToArray Date_Time_FileTimeToDOSDateTime Date_Time_FileTimeToLocalFileTime Date_Time_FileTimeToStr Date_Time_FileTimeToSystemTime Date_Time_GetFileTime Date_Time_GetLocalTime Date_Time_GetSystemTime Date_Time_GetSystemTimeAdjustment Date_Time_GetSystemTimeAsFileTime Date_Time_GetSystemTimes Date_Time_GetTickCount Date_Time_GetTimeZoneInformation Date_Time_LocalFileTimeToFileTime Date_Time_SetFileTime Date_Time_SetLocalTime Date_Time_SetSystemTime Date_Time_SetSystemTimeAdjustment Date_Time_SetTimeZoneInformation Date_Time_SystemTimeToArray Date_Time_SystemTimeToDateStr Date_Time_SystemTimeToDateTimeStr Date_Time_SystemTimeToFileTime Date_Time_SystemTimeToTimeStr Date_Time_SystemTimeToTzSpecificLocalTime Date_Time_TzSpecificLocalTimeToSystemTime DayValueToDate DebugBugReportEnv DebugCOMError DebugOut DebugReport DebugReportEx DebugReportVar DebugSetup Degree EventLog__Backup EventLog__Clear EventLog__Close EventLog__Count EventLog__DeregisterSource EventLog__Full EventLog__Notify EventLog__Oldest EventLog__Open EventLog__OpenBackup EventLog__Read EventLog__RegisterSource EventLog__Report Excel_BookAttach Excel_BookClose Excel_BookList Excel_BookNew Excel_BookOpen Excel_BookOpenText Excel_BookSave Excel_BookSaveAs Excel_Close Excel_ColumnToLetter Excel_ColumnToNumber Excel_ConvertFormula Excel_Export Excel_FilterGet Excel_FilterSet Excel_Open Excel_PictureAdd Excel_Print Excel_RangeCopyPaste Excel_RangeDelete Excel_RangeFind Excel_RangeInsert Excel_RangeLinkAddRemove Excel_RangeRead Excel_RangeReplace Excel_RangeSort Excel_RangeValidate Excel_RangeWrite Excel_SheetAdd Excel_SheetCopyMove Excel_SheetDelete Excel_SheetList FileCountLines FileCreate FileListToArray FileListToArrayRec FilePrint FileReadToArray FileWriteFromArray FileWriteLog FileWriteToLine FTP_Close FTP_Command FTP_Connect FTP_DecodeInternetStatus FTP_DirCreate FTP_DirDelete FTP_DirGetCurrent FTP_DirPutContents FTP_DirSetCurrent FTP_FileClose FTP_FileDelete FTP_FileGet FTP_FileGetSize FTP_FileOpen FTP_FilePut FTP_FileRead FTP_FileRename FTP_FileTimeLoHiToStr FTP_FindFileClose FTP_FindFileFirst FTP_FindFileNext FTP_GetLastResponseInfo FTP_ListToArray FTP_ListToArray2D FTP_ListToArrayEx FTP_Open FTP_ProgressDownload FTP_ProgressUpload FTP_SetStatusCallback GDIPlus_ArrowCapCreate GDIPlus_ArrowCapDispose GDIPlus_ArrowCapGetFillState GDIPlus_ArrowCapGetHeight GDIPlus_ArrowCapGetMiddleInset GDIPlus_ArrowCapGetWidth GDIPlus_ArrowCapSetFillState GDIPlus_ArrowCapSetHeight GDIPlus_ArrowCapSetMiddleInset GDIPlus_ArrowCapSetWidth GDIPlus_BitmapApplyEffect GDIPlus_BitmapApplyEffectEx GDIPlus_BitmapCloneArea GDIPlus_BitmapConvertFormat GDIPlus_BitmapCreateApplyEffect GDIPlus_BitmapCreateApplyEffectEx GDIPlus_BitmapCreateDIBFromBitmap GDIPlus_BitmapCreateFromFile GDIPlus_BitmapCreateFromGraphics GDIPlus_BitmapCreateFromHBITMAP GDIPlus_BitmapCreateFromHICON GDIPlus_BitmapCreateFromHICON32 GDIPlus_BitmapCreateFromMemory GDIPlus_BitmapCreateFromResource GDIPlus_BitmapCreateFromScan0 GDIPlus_BitmapCreateFromStream GDIPlus_BitmapCreateHBITMAPFromBitmap GDIPlus_BitmapDispose GDIPlus_BitmapGetHistogram GDIPlus_BitmapGetHistogramEx GDIPlus_BitmapGetHistogramSize GDIPlus_BitmapGetPixel GDIPlus_BitmapLockBits GDIPlus_BitmapSetPixel GDIPlus_BitmapUnlockBits GDIPlus_BrushClone GDIPlus_BrushCreateSolid GDIPlus_BrushDispose GDIPlus_BrushGetSolidColor GDIPlus_BrushGetType GDIPlus_BrushSetSolidColor GDIPlus_ColorMatrixCreate GDIPlus_ColorMatrixCreateGrayScale GDIPlus_ColorMatrixCreateNegative GDIPlus_ColorMatrixCreateSaturation GDIPlus_ColorMatrixCreateScale GDIPlus_ColorMatrixCreateTranslate GDIPlus_CustomLineCapClone GDIPlus_CustomLineCapCreate GDIPlus_CustomLineCapDispose GDIPlus_CustomLineCapGetStrokeCaps GDIPlus_CustomLineCapSetStrokeCaps GDIPlus_Decoders GDIPlus_DecodersGetCount GDIPlus_DecodersGetSize GDIPlus_DrawImageFX GDIPlus_DrawImageFXEx GDIPlus_DrawImagePoints GDIPlus_EffectCreate GDIPlus_EffectCreateBlur GDIPlus_EffectCreateBrightnessContrast GDIPlus_EffectCreateColorBalance GDIPlus_EffectCreateColorCurve GDIPlus_EffectCreateColorLUT GDIPlus_EffectCreateColorMatrix GDIPlus_EffectCreateHueSaturationLightness GDIPlus_EffectCreateLevels GDIPlus_EffectCreateRedEyeCorrection GDIPlus_EffectCreateSharpen GDIPlus_EffectCreateTint GDIPlus_EffectDispose GDIPlus_EffectGetParameters GDIPlus_EffectSetParameters GDIPlus_Encoders GDIPlus_EncodersGetCLSID GDIPlus_EncodersGetCount GDIPlus_EncodersGetParamList GDIPlus_EncodersGetParamListSize GDIPlus_EncodersGetSize GDIPlus_FontCreate GDIPlus_FontDispose GDIPlus_FontFamilyCreate GDIPlus_FontFamilyCreateFromCollection GDIPlus_FontFamilyDispose GDIPlus_FontFamilyGetCellAscent GDIPlus_FontFamilyGetCellDescent GDIPlus_FontFamilyGetEmHeight GDIPlus_FontFamilyGetLineSpacing GDIPlus_FontGetHeight GDIPlus_FontPrivateAddFont GDIPlus_FontPrivateAddMemoryFont GDIPlus_FontPrivateCollectionDispose GDIPlus_FontPrivateCreateCollection GDIPlus_GraphicsClear GDIPlus_GraphicsCreateFromHDC GDIPlus_GraphicsCreateFromHWND GDIPlus_GraphicsDispose GDIPlus_GraphicsDrawArc GDIPlus_GraphicsDrawBezier GDIPlus_GraphicsDrawClosedCurve GDIPlus_GraphicsDrawClosedCurve2 GDIPlus_GraphicsDrawCurve GDIPlus_GraphicsDrawCurve2 GDIPlus_GraphicsDrawEllipse GDIPlus_GraphicsDrawImage GDIPlus_GraphicsDrawImagePointsRect GDIPlus_GraphicsDrawImageRect GDIPlus_GraphicsDrawImageRectRect GDIPlus_GraphicsDrawLine GDIPlus_GraphicsDrawPath GDIPlus_GraphicsDrawPie GDIPlus_GraphicsDrawPolygon GDIPlus_GraphicsDrawRect GDIPlus_GraphicsDrawString GDIPlus_GraphicsDrawStringEx GDIPlus_GraphicsFillClosedCurve GDIPlus_GraphicsFillClosedCurve2 GDIPlus_GraphicsFillEllipse GDIPlus_GraphicsFillPath GDIPlus_GraphicsFillPie GDIPlus_GraphicsFillPolygon GDIPlus_GraphicsFillRect GDIPlus_GraphicsFillRegion GDIPlus_GraphicsGetCompositingMode GDIPlus_GraphicsGetCompositingQuality GDIPlus_GraphicsGetDC GDIPlus_GraphicsGetInterpolationMode GDIPlus_GraphicsGetSmoothingMode GDIPlus_GraphicsGetTransform GDIPlus_GraphicsMeasureCharacterRanges GDIPlus_GraphicsMeasureString GDIPlus_GraphicsReleaseDC GDIPlus_GraphicsResetClip GDIPlus_GraphicsResetTransform GDIPlus_GraphicsRestore GDIPlus_GraphicsRotateTransform GDIPlus_GraphicsSave GDIPlus_GraphicsScaleTransform GDIPlus_GraphicsSetClipPath GDIPlus_GraphicsSetClipRect GDIPlus_GraphicsSetClipRegion GDIPlus_GraphicsSetCompositingMode GDIPlus_GraphicsSetCompositingQuality GDIPlus_GraphicsSetInterpolationMode GDIPlus_GraphicsSetPixelOffsetMode GDIPlus_GraphicsSetSmoothingMode GDIPlus_GraphicsSetTextRenderingHint GDIPlus_GraphicsSetTransform GDIPlus_GraphicsTransformPoints GDIPlus_GraphicsTranslateTransform GDIPlus_HatchBrushCreate GDIPlus_HICONCreateFromBitmap GDIPlus_ImageAttributesCreate GDIPlus_ImageAttributesDispose GDIPlus_ImageAttributesSetColorKeys GDIPlus_ImageAttributesSetColorMatrix GDIPlus_ImageDispose GDIPlus_ImageGetDimension GDIPlus_ImageGetFlags GDIPlus_ImageGetGraphicsContext GDIPlus_ImageGetHeight GDIPlus_ImageGetHorizontalResolution GDIPlus_ImageGetPixelFormat GDIPlus_ImageGetRawFormat GDIPlus_ImageGetThumbnail GDIPlus_ImageGetType GDIPlus_ImageGetVerticalResolution GDIPlus_ImageGetWidth GDIPlus_ImageLoadFromFile GDIPlus_ImageLoadFromStream GDIPlus_ImageResize GDIPlus_ImageRotateFlip GDIPlus_ImageSaveToFile GDIPlus_ImageSaveToFileEx GDIPlus_ImageSaveToStream GDIPlus_ImageScale GDIPlus_LineBrushCreate GDIPlus_LineBrushCreateFromRect GDIPlus_LineBrushCreateFromRectWithAngle GDIPlus_LineBrushGetColors GDIPlus_LineBrushGetRect GDIPlus_LineBrushMultiplyTransform GDIPlus_LineBrushResetTransform GDIPlus_LineBrushSetBlend GDIPlus_LineBrushSetColors GDIPlus_LineBrushSetGammaCorrection GDIPlus_LineBrushSetLinearBlend GDIPlus_LineBrushSetPresetBlend GDIPlus_LineBrushSetSigmaBlend GDIPlus_LineBrushSetTransform GDIPlus_MatrixClone GDIPlus_MatrixCreate GDIPlus_MatrixDispose GDIPlus_MatrixGetElements GDIPlus_MatrixInvert GDIPlus_MatrixMultiply GDIPlus_MatrixRotate GDIPlus_MatrixScale GDIPlus_MatrixSetElements GDIPlus_MatrixShear GDIPlus_MatrixTransformPoints GDIPlus_MatrixTranslate GDIPlus_PaletteInitialize GDIPlus_ParamAdd GDIPlus_ParamInit GDIPlus_ParamSize GDIPlus_PathAddArc GDIPlus_PathAddBezier GDIPlus_PathAddClosedCurve GDIPlus_PathAddClosedCurve2 GDIPlus_PathAddCurve GDIPlus_PathAddCurve2 GDIPlus_PathAddCurve3 GDIPlus_PathAddEllipse GDIPlus_PathAddLine GDIPlus_PathAddLine2 GDIPlus_PathAddPath GDIPlus_PathAddPie GDIPlus_PathAddPolygon GDIPlus_PathAddRectangle GDIPlus_PathAddString GDIPlus_PathBrushCreate GDIPlus_PathBrushCreateFromPath GDIPlus_PathBrushGetCenterPoint GDIPlus_PathBrushGetFocusScales GDIPlus_PathBrushGetPointCount GDIPlus_PathBrushGetRect GDIPlus_PathBrushGetWrapMode GDIPlus_PathBrushMultiplyTransform GDIPlus_PathBrushResetTransform GDIPlus_PathBrushSetBlend GDIPlus_PathBrushSetCenterColor GDIPlus_PathBrushSetCenterPoint GDIPlus_PathBrushSetFocusScales GDIPlus_PathBrushSetGammaCorrection GDIPlus_PathBrushSetLinearBlend GDIPlus_PathBrushSetPresetBlend GDIPlus_PathBrushSetSigmaBlend GDIPlus_PathBrushSetSurroundColor GDIPlus_PathBrushSetSurroundColorsWithCount GDIPlus_PathBrushSetTransform GDIPlus_PathBrushSetWrapMode GDIPlus_PathClone GDIPlus_PathCloseFigure GDIPlus_PathCreate GDIPlus_PathCreate2 GDIPlus_PathDispose GDIPlus_PathFlatten GDIPlus_PathGetData GDIPlus_PathGetFillMode GDIPlus_PathGetLastPoint GDIPlus_PathGetPointCount GDIPlus_PathGetPoints GDIPlus_PathGetWorldBounds GDIPlus_PathIsOutlineVisiblePoint GDIPlus_PathIsVisiblePoint GDIPlus_PathIterCreate GDIPlus_PathIterDispose GDIPlus_PathIterGetSubpathCount GDIPlus_PathIterNextMarkerPath GDIPlus_PathIterNextSubpathPath GDIPlus_PathIterRewind GDIPlus_PathReset GDIPlus_PathReverse GDIPlus_PathSetFillMode GDIPlus_PathSetMarker GDIPlus_PathStartFigure GDIPlus_PathTransform GDIPlus_PathWarp GDIPlus_PathWiden GDIPlus_PathWindingModeOutline GDIPlus_PenCreate GDIPlus_PenCreate2 GDIPlus_PenDispose GDIPlus_PenGetAlignment GDIPlus_PenGetColor GDIPlus_PenGetCustomEndCap GDIPlus_PenGetDashCap GDIPlus_PenGetDashStyle GDIPlus_PenGetEndCap GDIPlus_PenGetMiterLimit GDIPlus_PenGetWidth GDIPlus_PenSetAlignment GDIPlus_PenSetColor GDIPlus_PenSetCustomEndCap GDIPlus_PenSetDashCap GDIPlus_PenSetDashStyle GDIPlus_PenSetEndCap GDIPlus_PenSetLineCap GDIPlus_PenSetLineJoin GDIPlus_PenSetMiterLimit GDIPlus_PenSetStartCap GDIPlus_PenSetWidth GDIPlus_RectFCreate GDIPlus_RegionClone GDIPlus_RegionCombinePath GDIPlus_RegionCombineRect GDIPlus_RegionCombineRegion GDIPlus_RegionCreate GDIPlus_RegionCreateFromPath GDIPlus_RegionCreateFromRect GDIPlus_RegionDispose GDIPlus_RegionGetBounds GDIPlus_RegionGetHRgn GDIPlus_RegionTransform GDIPlus_RegionTranslate GDIPlus_Shutdown GDIPlus_Startup GDIPlus_StringFormatCreate GDIPlus_StringFormatDispose GDIPlus_StringFormatGetMeasurableCharacterRangeCount GDIPlus_StringFormatSetAlign GDIPlus_StringFormatSetLineAlign GDIPlus_StringFormatSetMeasurableCharacterRanges GDIPlus_TextureCreate GDIPlus_TextureCreate2 GDIPlus_TextureCreateIA GetIP GUICtrlAVI_Close GUICtrlAVI_Create GUICtrlAVI_Destroy GUICtrlAVI_IsPlaying GUICtrlAVI_Open GUICtrlAVI_OpenEx GUICtrlAVI_Play GUICtrlAVI_Seek GUICtrlAVI_Show GUICtrlAVI_Stop GUICtrlButton_Click GUICtrlButton_Create GUICtrlButton_Destroy GUICtrlButton_Enable GUICtrlButton_GetCheck GUICtrlButton_GetFocus GUICtrlButton_GetIdealSize GUICtrlButton_GetImage GUICtrlButton_GetImageList GUICtrlButton_GetNote GUICtrlButton_GetNoteLength GUICtrlButton_GetSplitInfo GUICtrlButton_GetState GUICtrlButton_GetText GUICtrlButton_GetTextMargin GUICtrlButton_SetCheck GUICtrlButton_SetDontClick GUICtrlButton_SetFocus GUICtrlButton_SetImage GUICtrlButton_SetImageList GUICtrlButton_SetNote GUICtrlButton_SetShield GUICtrlButton_SetSize GUICtrlButton_SetSplitInfo GUICtrlButton_SetState GUICtrlButton_SetStyle GUICtrlButton_SetText GUICtrlButton_SetTextMargin GUICtrlButton_Show GUICtrlComboBoxEx_AddDir GUICtrlComboBoxEx_AddString GUICtrlComboBoxEx_BeginUpdate GUICtrlComboBoxEx_Create GUICtrlComboBoxEx_CreateSolidBitMap GUICtrlComboBoxEx_DeleteString GUICtrlComboBoxEx_Destroy GUICtrlComboBoxEx_EndUpdate GUICtrlComboBoxEx_FindStringExact GUICtrlComboBoxEx_GetComboBoxInfo GUICtrlComboBoxEx_GetComboControl GUICtrlComboBoxEx_GetCount GUICtrlComboBoxEx_GetCurSel GUICtrlComboBoxEx_GetDroppedControlRect GUICtrlComboBoxEx_GetDroppedControlRectEx GUICtrlComboBoxEx_GetDroppedState GUICtrlComboBoxEx_GetDroppedWidth GUICtrlComboBoxEx_GetEditControl GUICtrlComboBoxEx_GetEditSel GUICtrlComboBoxEx_GetEditText GUICtrlComboBoxEx_GetExtendedStyle GUICtrlComboBoxEx_GetExtendedUI GUICtrlComboBoxEx_GetImageList GUICtrlComboBoxEx_GetItem GUICtrlComboBoxEx_GetItemEx GUICtrlComboBoxEx_GetItemHeight GUICtrlComboBoxEx_GetItemImage GUICtrlComboBoxEx_GetItemIndent GUICtrlComboBoxEx_GetItemOverlayImage GUICtrlComboBoxEx_GetItemParam GUICtrlComboBoxEx_GetItemSelectedImage GUICtrlComboBoxEx_GetItemText GUICtrlComboBoxEx_GetItemTextLen GUICtrlComboBoxEx_GetList GUICtrlComboBoxEx_GetListArray GUICtrlComboBoxEx_GetLocale GUICtrlComboBoxEx_GetLocaleCountry GUICtrlComboBoxEx_GetLocaleLang GUICtrlComboBoxEx_GetLocalePrimLang GUICtrlComboBoxEx_GetLocaleSubLang GUICtrlComboBoxEx_GetMinVisible GUICtrlComboBoxEx_GetTopIndex GUICtrlComboBoxEx_GetUnicode GUICtrlComboBoxEx_InitStorage GUICtrlComboBoxEx_InsertString GUICtrlComboBoxEx_LimitText GUICtrlComboBoxEx_ReplaceEditSel GUICtrlComboBoxEx_ResetContent GUICtrlComboBoxEx_SetCurSel GUICtrlComboBoxEx_SetDroppedWidth GUICtrlComboBoxEx_SetEditSel GUICtrlComboBoxEx_SetEditText GUICtrlComboBoxEx_SetExtendedStyle GUICtrlComboBoxEx_SetExtendedUI GUICtrlComboBoxEx_SetImageList GUICtrlComboBoxEx_SetItem GUICtrlComboBoxEx_SetItemEx GUICtrlComboBoxEx_SetItemHeight GUICtrlComboBoxEx_SetItemImage GUICtrlComboBoxEx_SetItemIndent GUICtrlComboBoxEx_SetItemOverlayImage GUICtrlComboBoxEx_SetItemParam GUICtrlComboBoxEx_SetItemSelectedImage GUICtrlComboBoxEx_SetMinVisible GUICtrlComboBoxEx_SetTopIndex GUICtrlComboBoxEx_SetUnicode GUICtrlComboBoxEx_ShowDropDown GUICtrlComboBox_AddDir GUICtrlComboBox_AddString GUICtrlComboBox_AutoComplete GUICtrlComboBox_BeginUpdate GUICtrlComboBox_Create GUICtrlComboBox_DeleteString GUICtrlComboBox_Destroy GUICtrlComboBox_EndUpdate GUICtrlComboBox_FindString GUICtrlComboBox_FindStringExact GUICtrlComboBox_GetComboBoxInfo GUICtrlComboBox_GetCount GUICtrlComboBox_GetCueBanner GUICtrlComboBox_GetCurSel GUICtrlComboBox_GetDroppedControlRect GUICtrlComboBox_GetDroppedControlRectEx GUICtrlComboBox_GetDroppedState GUICtrlComboBox_GetDroppedWidth GUICtrlComboBox_GetEditSel GUICtrlComboBox_GetEditText GUICtrlComboBox_GetExtendedUI GUICtrlComboBox_GetHorizontalExtent GUICtrlComboBox_GetItemHeight GUICtrlComboBox_GetLBText GUICtrlComboBox_GetLBTextLen GUICtrlComboBox_GetList GUICtrlComboBox_GetListArray GUICtrlComboBox_GetLocale GUICtrlComboBox_GetLocaleCountry GUICtrlComboBox_GetLocaleLang GUICtrlComboBox_GetLocalePrimLang GUICtrlComboBox_GetLocaleSubLang GUICtrlComboBox_GetMinVisible GUICtrlComboBox_GetTopIndex GUICtrlComboBox_InitStorage GUICtrlComboBox_InsertString GUICtrlComboBox_LimitText GUICtrlComboBox_ReplaceEditSel GUICtrlComboBox_ResetContent GUICtrlComboBox_SelectString GUICtrlComboBox_SetCueBanner GUICtrlComboBox_SetCurSel GUICtrlComboBox_SetDroppedWidth GUICtrlComboBox_SetEditSel GUICtrlComboBox_SetEditText GUICtrlComboBox_SetExtendedUI GUICtrlComboBox_SetHorizontalExtent GUICtrlComboBox_SetItemHeight GUICtrlComboBox_SetMinVisible GUICtrlComboBox_SetTopIndex GUICtrlComboBox_ShowDropDown GUICtrlDTP_Create GUICtrlDTP_Destroy GUICtrlDTP_GetMCColor GUICtrlDTP_GetMCFont GUICtrlDTP_GetMonthCal GUICtrlDTP_GetRange GUICtrlDTP_GetRangeEx GUICtrlDTP_GetSystemTime GUICtrlDTP_GetSystemTimeEx GUICtrlDTP_SetFormat GUICtrlDTP_SetMCColor GUICtrlDTP_SetMCFont GUICtrlDTP_SetRange GUICtrlDTP_SetRangeEx GUICtrlDTP_SetSystemTime GUICtrlDTP_SetSystemTimeEx GUICtrlEdit_AppendText GUICtrlEdit_BeginUpdate GUICtrlEdit_CanUndo GUICtrlEdit_CharFromPos GUICtrlEdit_Create GUICtrlEdit_Destroy GUICtrlEdit_EmptyUndoBuffer GUICtrlEdit_EndUpdate GUICtrlEdit_Find GUICtrlEdit_FmtLines GUICtrlEdit_GetCueBanner GUICtrlEdit_GetFirstVisibleLine GUICtrlEdit_GetLimitText GUICtrlEdit_GetLine GUICtrlEdit_GetLineCount GUICtrlEdit_GetMargins GUICtrlEdit_GetModify GUICtrlEdit_GetPasswordChar GUICtrlEdit_GetRECT GUICtrlEdit_GetRECTEx GUICtrlEdit_GetSel GUICtrlEdit_GetText GUICtrlEdit_GetTextLen GUICtrlEdit_HideBalloonTip GUICtrlEdit_InsertText GUICtrlEdit_LineFromChar GUICtrlEdit_LineIndex GUICtrlEdit_LineLength GUICtrlEdit_LineScroll GUICtrlEdit_PosFromChar GUICtrlEdit_ReplaceSel GUICtrlEdit_Scroll GUICtrlEdit_SetCueBanner GUICtrlEdit_SetLimitText GUICtrlEdit_SetMargins GUICtrlEdit_SetModify GUICtrlEdit_SetPasswordChar GUICtrlEdit_SetReadOnly GUICtrlEdit_SetRECT GUICtrlEdit_SetRECTEx GUICtrlEdit_SetRECTNP GUICtrlEdit_SetRectNPEx GUICtrlEdit_SetSel GUICtrlEdit_SetTabStops GUICtrlEdit_SetText GUICtrlEdit_ShowBalloonTip GUICtrlEdit_Undo GUICtrlHeader_AddItem GUICtrlHeader_ClearFilter GUICtrlHeader_ClearFilterAll GUICtrlHeader_Create GUICtrlHeader_CreateDragImage GUICtrlHeader_DeleteItem GUICtrlHeader_Destroy GUICtrlHeader_EditFilter GUICtrlHeader_GetBitmapMargin GUICtrlHeader_GetImageList GUICtrlHeader_GetItem GUICtrlHeader_GetItemAlign GUICtrlHeader_GetItemBitmap GUICtrlHeader_GetItemCount GUICtrlHeader_GetItemDisplay GUICtrlHeader_GetItemFlags GUICtrlHeader_GetItemFormat GUICtrlHeader_GetItemImage GUICtrlHeader_GetItemOrder GUICtrlHeader_GetItemParam GUICtrlHeader_GetItemRect GUICtrlHeader_GetItemRectEx GUICtrlHeader_GetItemText GUICtrlHeader_GetItemWidth GUICtrlHeader_GetOrderArray GUICtrlHeader_GetUnicodeFormat GUICtrlHeader_HitTest GUICtrlHeader_InsertItem GUICtrlHeader_Layout GUICtrlHeader_OrderToIndex GUICtrlHeader_SetBitmapMargin GUICtrlHeader_SetFilterChangeTimeout GUICtrlHeader_SetHotDivider GUICtrlHeader_SetImageList GUICtrlHeader_SetItem GUICtrlHeader_SetItemAlign GUICtrlHeader_SetItemBitmap GUICtrlHeader_SetItemDisplay GUICtrlHeader_SetItemFlags GUICtrlHeader_SetItemFormat GUICtrlHeader_SetItemImage GUICtrlHeader_SetItemOrder GUICtrlHeader_SetItemParam GUICtrlHeader_SetItemText GUICtrlHeader_SetItemWidth GUICtrlHeader_SetOrderArray GUICtrlHeader_SetUnicodeFormat GUICtrlIpAddress_ClearAddress GUICtrlIpAddress_Create GUICtrlIpAddress_Destroy GUICtrlIpAddress_Get GUICtrlIpAddress_GetArray GUICtrlIpAddress_GetEx GUICtrlIpAddress_IsBlank GUICtrlIpAddress_Set GUICtrlIpAddress_SetArray GUICtrlIpAddress_SetEx GUICtrlIpAddress_SetFocus GUICtrlIpAddress_SetFont GUICtrlIpAddress_SetRange GUICtrlIpAddress_ShowHide GUICtrlListBox_AddFile GUICtrlListBox_AddString GUICtrlListBox_BeginUpdate GUICtrlListBox_ClickItem GUICtrlListBox_Create GUICtrlListBox_DeleteString GUICtrlListBox_Destroy GUICtrlListBox_Dir GUICtrlListBox_EndUpdate GUICtrlListBox_FindInText GUICtrlListBox_FindString GUICtrlListBox_GetAnchorIndex GUICtrlListBox_GetCaretIndex GUICtrlListBox_GetCount GUICtrlListBox_GetCurSel GUICtrlListBox_GetHorizontalExtent GUICtrlListBox_GetItemData GUICtrlListBox_GetItemHeight GUICtrlListBox_GetItemRect GUICtrlListBox_GetItemRectEx GUICtrlListBox_GetListBoxInfo GUICtrlListBox_GetLocale GUICtrlListBox_GetLocaleCountry GUICtrlListBox_GetLocaleLang GUICtrlListBox_GetLocalePrimLang GUICtrlListBox_GetLocaleSubLang GUICtrlListBox_GetSel GUICtrlListBox_GetSelCount GUICtrlListBox_GetSelItems GUICtrlListBox_GetSelItemsText GUICtrlListBox_GetText GUICtrlListBox_GetTextLen GUICtrlListBox_GetTopIndex GUICtrlListBox_InitStorage GUICtrlListBox_InsertString GUICtrlListBox_ItemFromPoint GUICtrlListBox_ReplaceString GUICtrlListBox_ResetContent GUICtrlListBox_SelectString GUICtrlListBox_SelItemRange GUICtrlListBox_SelItemRangeEx GUICtrlListBox_SetAnchorIndex GUICtrlListBox_SetCaretIndex GUICtrlListBox_SetColumnWidth GUICtrlListBox_SetCurSel GUICtrlListBox_SetHorizontalExtent GUICtrlListBox_SetItemData GUICtrlListBox_SetItemHeight GUICtrlListBox_SetLocale GUICtrlListBox_SetSel GUICtrlListBox_SetTabStops GUICtrlListBox_SetTopIndex GUICtrlListBox_Sort GUICtrlListBox_SwapString GUICtrlListBox_UpdateHScroll GUICtrlListView_AddArray GUICtrlListView_AddColumn GUICtrlListView_AddItem GUICtrlListView_AddSubItem GUICtrlListView_ApproximateViewHeight GUICtrlListView_ApproximateViewRect GUICtrlListView_ApproximateViewWidth GUICtrlListView_Arrange GUICtrlListView_BeginUpdate GUICtrlListView_CancelEditLabel GUICtrlListView_ClickItem GUICtrlListView_CopyItems GUICtrlListView_Create GUICtrlListView_CreateDragImage GUICtrlListView_CreateSolidBitMap GUICtrlListView_DeleteAllItems GUICtrlListView_DeleteColumn GUICtrlListView_DeleteItem GUICtrlListView_DeleteItemsSelected GUICtrlListView_Destroy GUICtrlListView_DrawDragImage GUICtrlListView_EditLabel GUICtrlListView_EnableGroupView GUICtrlListView_EndUpdate GUICtrlListView_EnsureVisible GUICtrlListView_FindInText GUICtrlListView_FindItem GUICtrlListView_FindNearest GUICtrlListView_FindParam GUICtrlListView_FindText GUICtrlListView_GetBkColor GUICtrlListView_GetBkImage GUICtrlListView_GetCallbackMask GUICtrlListView_GetColumn GUICtrlListView_GetColumnCount GUICtrlListView_GetColumnOrder GUICtrlListView_GetColumnOrderArray GUICtrlListView_GetColumnWidth GUICtrlListView_GetCounterPage GUICtrlListView_GetEditControl GUICtrlListView_GetExtendedListViewStyle GUICtrlListView_GetFocusedGroup GUICtrlListView_GetGroupCount GUICtrlListView_GetGroupInfo GUICtrlListView_GetGroupInfoByIndex GUICtrlListView_GetGroupRect GUICtrlListView_GetGroupViewEnabled GUICtrlListView_GetHeader GUICtrlListView_GetHotCursor GUICtrlListView_GetHotItem GUICtrlListView_GetHoverTime GUICtrlListView_GetImageList GUICtrlListView_GetISearchString GUICtrlListView_GetItem GUICtrlListView_GetItemChecked GUICtrlListView_GetItemCount GUICtrlListView_GetItemCut GUICtrlListView_GetItemDropHilited GUICtrlListView_GetItemEx GUICtrlListView_GetItemFocused GUICtrlListView_GetItemGroupID GUICtrlListView_GetItemImage GUICtrlListView_GetItemIndent GUICtrlListView_GetItemParam GUICtrlListView_GetItemPosition GUICtrlListView_GetItemPositionX GUICtrlListView_GetItemPositionY GUICtrlListView_GetItemRect GUICtrlListView_GetItemRectEx GUICtrlListView_GetItemSelected GUICtrlListView_GetItemSpacing GUICtrlListView_GetItemSpacingX GUICtrlListView_GetItemSpacingY GUICtrlListView_GetItemState GUICtrlListView_GetItemStateImage GUICtrlListView_GetItemText GUICtrlListView_GetItemTextArray GUICtrlListView_GetItemTextString GUICtrlListView_GetNextItem GUICtrlListView_GetNumberOfWorkAreas GUICtrlListView_GetOrigin GUICtrlListView_GetOriginX GUICtrlListView_GetOriginY GUICtrlListView_GetOutlineColor GUICtrlListView_GetSelectedColumn GUICtrlListView_GetSelectedCount GUICtrlListView_GetSelectedIndices GUICtrlListView_GetSelectionMark GUICtrlListView_GetStringWidth GUICtrlListView_GetSubItemRect GUICtrlListView_GetTextBkColor GUICtrlListView_GetTextColor GUICtrlListView_GetToolTips GUICtrlListView_GetTopIndex GUICtrlListView_GetUnicodeFormat GUICtrlListView_GetView GUICtrlListView_GetViewDetails GUICtrlListView_GetViewLarge GUICtrlListView_GetViewList GUICtrlListView_GetViewRect GUICtrlListView_GetViewSmall GUICtrlListView_GetViewTile GUICtrlListView_HideColumn GUICtrlListView_HitTest GUICtrlListView_InsertColumn GUICtrlListView_InsertGroup GUICtrlListView_InsertItem GUICtrlListView_JustifyColumn GUICtrlListView_MapIDToIndex GUICtrlListView_MapIndexToID GUICtrlListView_RedrawItems GUICtrlListView_RegisterSortCallBack GUICtrlListView_RemoveAllGroups GUICtrlListView_RemoveGroup GUICtrlListView_Scroll GUICtrlListView_SetBkColor GUICtrlListView_SetBkImage GUICtrlListView_SetCallBackMask GUICtrlListView_SetColumn GUICtrlListView_SetColumnOrder GUICtrlListView_SetColumnOrderArray GUICtrlListView_SetColumnWidth GUICtrlListView_SetExtendedListViewStyle GUICtrlListView_SetGroupInfo GUICtrlListView_SetHotItem GUICtrlListView_SetHoverTime GUICtrlListView_SetIconSpacing GUICtrlListView_SetImageList GUICtrlListView_SetItem GUICtrlListView_SetItemChecked GUICtrlListView_SetItemCount GUICtrlListView_SetItemCut GUICtrlListView_SetItemDropHilited GUICtrlListView_SetItemEx GUICtrlListView_SetItemFocused GUICtrlListView_SetItemGroupID GUICtrlListView_SetItemImage GUICtrlListView_SetItemIndent GUICtrlListView_SetItemParam GUICtrlListView_SetItemPosition GUICtrlListView_SetItemPosition32 GUICtrlListView_SetItemSelected GUICtrlListView_SetItemState GUICtrlListView_SetItemStateImage GUICtrlListView_SetItemText GUICtrlListView_SetOutlineColor GUICtrlListView_SetSelectedColumn GUICtrlListView_SetSelectionMark GUICtrlListView_SetTextBkColor GUICtrlListView_SetTextColor GUICtrlListView_SetToolTips GUICtrlListView_SetUnicodeFormat GUICtrlListView_SetView GUICtrlListView_SetWorkAreas GUICtrlListView_SimpleSort GUICtrlListView_SortItems GUICtrlListView_SubItemHitTest GUICtrlListView_UnRegisterSortCallBack GUICtrlMenu_AddMenuItem GUICtrlMenu_AppendMenu GUICtrlMenu_CalculatePopupWindowPosition GUICtrlMenu_CheckMenuItem GUICtrlMenu_CheckRadioItem GUICtrlMenu_CreateMenu GUICtrlMenu_CreatePopup GUICtrlMenu_DeleteMenu GUICtrlMenu_DestroyMenu GUICtrlMenu_DrawMenuBar GUICtrlMenu_EnableMenuItem GUICtrlMenu_FindItem GUICtrlMenu_FindParent GUICtrlMenu_GetItemBmp GUICtrlMenu_GetItemBmpChecked GUICtrlMenu_GetItemBmpUnchecked GUICtrlMenu_GetItemChecked GUICtrlMenu_GetItemCount GUICtrlMenu_GetItemData GUICtrlMenu_GetItemDefault GUICtrlMenu_GetItemDisabled GUICtrlMenu_GetItemEnabled GUICtrlMenu_GetItemGrayed GUICtrlMenu_GetItemHighlighted GUICtrlMenu_GetItemID GUICtrlMenu_GetItemInfo GUICtrlMenu_GetItemRect GUICtrlMenu_GetItemRectEx GUICtrlMenu_GetItemState GUICtrlMenu_GetItemStateEx GUICtrlMenu_GetItemSubMenu GUICtrlMenu_GetItemText GUICtrlMenu_GetItemType GUICtrlMenu_GetMenu GUICtrlMenu_GetMenuBackground GUICtrlMenu_GetMenuBarInfo GUICtrlMenu_GetMenuContextHelpID GUICtrlMenu_GetMenuData GUICtrlMenu_GetMenuDefaultItem GUICtrlMenu_GetMenuHeight GUICtrlMenu_GetMenuInfo GUICtrlMenu_GetMenuStyle GUICtrlMenu_GetSystemMenu GUICtrlMenu_InsertMenuItem GUICtrlMenu_InsertMenuItemEx GUICtrlMenu_IsMenu GUICtrlMenu_LoadMenu GUICtrlMenu_MapAccelerator GUICtrlMenu_MenuItemFromPoint GUICtrlMenu_RemoveMenu GUICtrlMenu_SetItemBitmaps GUICtrlMenu_SetItemBmp GUICtrlMenu_SetItemBmpChecked GUICtrlMenu_SetItemBmpUnchecked GUICtrlMenu_SetItemChecked GUICtrlMenu_SetItemData GUICtrlMenu_SetItemDefault GUICtrlMenu_SetItemDisabled GUICtrlMenu_SetItemEnabled GUICtrlMenu_SetItemGrayed GUICtrlMenu_SetItemHighlighted GUICtrlMenu_SetItemID GUICtrlMenu_SetItemInfo GUICtrlMenu_SetItemState GUICtrlMenu_SetItemSubMenu GUICtrlMenu_SetItemText GUICtrlMenu_SetItemType GUICtrlMenu_SetMenu GUICtrlMenu_SetMenuBackground GUICtrlMenu_SetMenuContextHelpID GUICtrlMenu_SetMenuData GUICtrlMenu_SetMenuDefaultItem GUICtrlMenu_SetMenuHeight GUICtrlMenu_SetMenuInfo GUICtrlMenu_SetMenuStyle GUICtrlMenu_TrackPopupMenu GUICtrlMonthCal_Create GUICtrlMonthCal_Destroy GUICtrlMonthCal_GetCalendarBorder GUICtrlMonthCal_GetCalendarCount GUICtrlMonthCal_GetColor GUICtrlMonthCal_GetColorArray GUICtrlMonthCal_GetCurSel GUICtrlMonthCal_GetCurSelStr GUICtrlMonthCal_GetFirstDOW GUICtrlMonthCal_GetFirstDOWStr GUICtrlMonthCal_GetMaxSelCount GUICtrlMonthCal_GetMaxTodayWidth GUICtrlMonthCal_GetMinReqHeight GUICtrlMonthCal_GetMinReqRect GUICtrlMonthCal_GetMinReqRectArray GUICtrlMonthCal_GetMinReqWidth GUICtrlMonthCal_GetMonthDelta GUICtrlMonthCal_GetMonthRange GUICtrlMonthCal_GetMonthRangeMax GUICtrlMonthCal_GetMonthRangeMaxStr GUICtrlMonthCal_GetMonthRangeMin GUICtrlMonthCal_GetMonthRangeMinStr GUICtrlMonthCal_GetMonthRangeSpan GUICtrlMonthCal_GetRange GUICtrlMonthCal_GetRangeMax GUICtrlMonthCal_GetRangeMaxStr GUICtrlMonthCal_GetRangeMin GUICtrlMonthCal_GetRangeMinStr GUICtrlMonthCal_GetSelRange GUICtrlMonthCal_GetSelRangeMax GUICtrlMonthCal_GetSelRangeMaxStr GUICtrlMonthCal_GetSelRangeMin GUICtrlMonthCal_GetSelRangeMinStr GUICtrlMonthCal_GetToday GUICtrlMonthCal_GetTodayStr GUICtrlMonthCal_GetUnicodeFormat GUICtrlMonthCal_HitTest GUICtrlMonthCal_SetCalendarBorder GUICtrlMonthCal_SetColor GUICtrlMonthCal_SetCurSel GUICtrlMonthCal_SetDayState GUICtrlMonthCal_SetFirstDOW GUICtrlMonthCal_SetMaxSelCount GUICtrlMonthCal_SetMonthDelta GUICtrlMonthCal_SetRange GUICtrlMonthCal_SetSelRange GUICtrlMonthCal_SetToday GUICtrlMonthCal_SetUnicodeFormat GUICtrlRebar_AddBand GUICtrlRebar_AddToolBarBand GUICtrlRebar_BeginDrag GUICtrlRebar_Create GUICtrlRebar_DeleteBand GUICtrlRebar_Destroy GUICtrlRebar_DragMove GUICtrlRebar_EndDrag GUICtrlRebar_GetBandBackColor GUICtrlRebar_GetBandBorders GUICtrlRebar_GetBandBordersEx GUICtrlRebar_GetBandChildHandle GUICtrlRebar_GetBandChildSize GUICtrlRebar_GetBandCount GUICtrlRebar_GetBandForeColor GUICtrlRebar_GetBandHeaderSize GUICtrlRebar_GetBandID GUICtrlRebar_GetBandIdealSize GUICtrlRebar_GetBandLength GUICtrlRebar_GetBandLParam GUICtrlRebar_GetBandMargins GUICtrlRebar_GetBandMarginsEx GUICtrlRebar_GetBandRect GUICtrlRebar_GetBandRectEx GUICtrlRebar_GetBandStyle GUICtrlRebar_GetBandStyleBreak GUICtrlRebar_GetBandStyleChildEdge GUICtrlRebar_GetBandStyleFixedBMP GUICtrlRebar_GetBandStyleFixedSize GUICtrlRebar_GetBandStyleGripperAlways GUICtrlRebar_GetBandStyleHidden GUICtrlRebar_GetBandStyleHideTitle GUICtrlRebar_GetBandStyleNoGripper GUICtrlRebar_GetBandStyleTopAlign GUICtrlRebar_GetBandStyleUseChevron GUICtrlRebar_GetBandStyleVariableHeight GUICtrlRebar_GetBandText GUICtrlRebar_GetBarHeight GUICtrlRebar_GetBarInfo GUICtrlRebar_GetBKColor GUICtrlRebar_GetColorScheme GUICtrlRebar_GetRowCount GUICtrlRebar_GetRowHeight GUICtrlRebar_GetTextColor GUICtrlRebar_GetToolTips GUICtrlRebar_GetUnicodeFormat GUICtrlRebar_HitTest GUICtrlRebar_IDToIndex GUICtrlRebar_MaximizeBand GUICtrlRebar_MinimizeBand GUICtrlRebar_MoveBand GUICtrlRebar_SetBandBackColor GUICtrlRebar_SetBandForeColor GUICtrlRebar_SetBandHeaderSize GUICtrlRebar_SetBandID GUICtrlRebar_SetBandIdealSize GUICtrlRebar_SetBandLength GUICtrlRebar_SetBandLParam GUICtrlRebar_SetBandStyle GUICtrlRebar_SetBandStyleBreak GUICtrlRebar_SetBandStyleChildEdge GUICtrlRebar_SetBandStyleFixedBMP GUICtrlRebar_SetBandStyleFixedSize GUICtrlRebar_SetBandStyleGripperAlways GUICtrlRebar_SetBandStyleHidden GUICtrlRebar_SetBandStyleHideTitle GUICtrlRebar_SetBandStyleNoGripper GUICtrlRebar_SetBandStyleTopAlign GUICtrlRebar_SetBandStyleUseChevron GUICtrlRebar_SetBandStyleVariableHeight GUICtrlRebar_SetBandText GUICtrlRebar_SetBarInfo GUICtrlRebar_SetBKColor GUICtrlRebar_SetColorScheme GUICtrlRebar_SetTextColor GUICtrlRebar_SetToolTips GUICtrlRebar_SetUnicodeFormat GUICtrlRebar_ShowBand GUICtrlRichEdit_AppendText GUICtrlRichEdit_AutoDetectURL GUICtrlRichEdit_CanPaste GUICtrlRichEdit_CanPasteSpecial GUICtrlRichEdit_CanRedo GUICtrlRichEdit_CanUndo GUICtrlRichEdit_ChangeFontSize GUICtrlRichEdit_Copy GUICtrlRichEdit_Create GUICtrlRichEdit_Cut GUICtrlRichEdit_Deselect GUICtrlRichEdit_Destroy GUICtrlRichEdit_EmptyUndoBuffer GUICtrlRichEdit_FindText GUICtrlRichEdit_FindTextInRange GUICtrlRichEdit_GetBkColor GUICtrlRichEdit_GetCharAttributes GUICtrlRichEdit_GetCharBkColor GUICtrlRichEdit_GetCharColor GUICtrlRichEdit_GetCharPosFromXY GUICtrlRichEdit_GetCharPosOfNextWord GUICtrlRichEdit_GetCharPosOfPreviousWord GUICtrlRichEdit_GetCharWordBreakInfo GUICtrlRichEdit_GetFirstCharPosOnLine GUICtrlRichEdit_GetFont GUICtrlRichEdit_GetLineCount GUICtrlRichEdit_GetLineLength GUICtrlRichEdit_GetLineNumberFromCharPos GUICtrlRichEdit_GetNextRedo GUICtrlRichEdit_GetNextUndo GUICtrlRichEdit_GetNumberOfFirstVisibleLine GUICtrlRichEdit_GetParaAlignment GUICtrlRichEdit_GetParaAttributes GUICtrlRichEdit_GetParaBorder GUICtrlRichEdit_GetParaIndents GUICtrlRichEdit_GetParaNumbering GUICtrlRichEdit_GetParaShading GUICtrlRichEdit_GetParaSpacing GUICtrlRichEdit_GetParaTabStops GUICtrlRichEdit_GetPasswordChar GUICtrlRichEdit_GetRECT GUICtrlRichEdit_GetScrollPos GUICtrlRichEdit_GetSel GUICtrlRichEdit_GetSelAA GUICtrlRichEdit_GetSelText GUICtrlRichEdit_GetSpaceUnit GUICtrlRichEdit_GetText GUICtrlRichEdit_GetTextInLine GUICtrlRichEdit_GetTextInRange GUICtrlRichEdit_GetTextLength GUICtrlRichEdit_GetVersion GUICtrlRichEdit_GetXYFromCharPos GUICtrlRichEdit_GetZoom GUICtrlRichEdit_GotoCharPos GUICtrlRichEdit_HideSelection GUICtrlRichEdit_InsertText GUICtrlRichEdit_IsModified GUICtrlRichEdit_IsTextSelected GUICtrlRichEdit_Paste GUICtrlRichEdit_PasteSpecial GUICtrlRichEdit_PauseRedraw GUICtrlRichEdit_Redo GUICtrlRichEdit_ReplaceText GUICtrlRichEdit_ResumeRedraw GUICtrlRichEdit_ScrollLineOrPage GUICtrlRichEdit_ScrollLines GUICtrlRichEdit_ScrollToCaret GUICtrlRichEdit_SetBkColor GUICtrlRichEdit_SetCharAttributes GUICtrlRichEdit_SetCharBkColor GUICtrlRichEdit_SetCharColor GUICtrlRichEdit_SetEventMask GUICtrlRichEdit_SetFont GUICtrlRichEdit_SetLimitOnText GUICtrlRichEdit_SetModified GUICtrlRichEdit_SetParaAlignment GUICtrlRichEdit_SetParaAttributes GUICtrlRichEdit_SetParaBorder GUICtrlRichEdit_SetParaIndents GUICtrlRichEdit_SetParaNumbering GUICtrlRichEdit_SetParaShading GUICtrlRichEdit_SetParaSpacing GUICtrlRichEdit_SetParaTabStops GUICtrlRichEdit_SetPasswordChar GUICtrlRichEdit_SetReadOnly GUICtrlRichEdit_SetRECT GUICtrlRichEdit_SetScrollPos GUICtrlRichEdit_SetSel GUICtrlRichEdit_SetSpaceUnit GUICtrlRichEdit_SetTabStops GUICtrlRichEdit_SetText GUICtrlRichEdit_SetUndoLimit GUICtrlRichEdit_SetZoom GUICtrlRichEdit_StreamFromFile GUICtrlRichEdit_StreamFromVar GUICtrlRichEdit_StreamToFile GUICtrlRichEdit_StreamToVar GUICtrlRichEdit_Undo GUICtrlSlider_ClearSel GUICtrlSlider_ClearTics GUICtrlSlider_Create GUICtrlSlider_Destroy GUICtrlSlider_GetBuddy GUICtrlSlider_GetChannelRect GUICtrlSlider_GetChannelRectEx GUICtrlSlider_GetLineSize GUICtrlSlider_GetLogicalTics GUICtrlSlider_GetNumTics GUICtrlSlider_GetPageSize GUICtrlSlider_GetPos GUICtrlSlider_GetRange GUICtrlSlider_GetRangeMax GUICtrlSlider_GetRangeMin GUICtrlSlider_GetSel GUICtrlSlider_GetSelEnd GUICtrlSlider_GetSelStart GUICtrlSlider_GetThumbLength GUICtrlSlider_GetThumbRect GUICtrlSlider_GetThumbRectEx GUICtrlSlider_GetTic GUICtrlSlider_GetTicPos GUICtrlSlider_GetToolTips GUICtrlSlider_GetUnicodeFormat GUICtrlSlider_SetBuddy GUICtrlSlider_SetLineSize GUICtrlSlider_SetPageSize GUICtrlSlider_SetPos GUICtrlSlider_SetRange GUICtrlSlider_SetRangeMax GUICtrlSlider_SetRangeMin GUICtrlSlider_SetSel GUICtrlSlider_SetSelEnd GUICtrlSlider_SetSelStart GUICtrlSlider_SetThumbLength GUICtrlSlider_SetTic GUICtrlSlider_SetTicFreq GUICtrlSlider_SetTipSide GUICtrlSlider_SetToolTips GUICtrlSlider_SetUnicodeFormat GUICtrlStatusBar_Create GUICtrlStatusBar_Destroy GUICtrlStatusBar_EmbedControl GUICtrlStatusBar_GetBorders GUICtrlStatusBar_GetBordersHorz GUICtrlStatusBar_GetBordersRect GUICtrlStatusBar_GetBordersVert GUICtrlStatusBar_GetCount GUICtrlStatusBar_GetHeight GUICtrlStatusBar_GetIcon GUICtrlStatusBar_GetParts GUICtrlStatusBar_GetRect GUICtrlStatusBar_GetRectEx GUICtrlStatusBar_GetText GUICtrlStatusBar_GetTextFlags GUICtrlStatusBar_GetTextLength GUICtrlStatusBar_GetTextLengthEx GUICtrlStatusBar_GetTipText GUICtrlStatusBar_GetUnicodeFormat GUICtrlStatusBar_GetWidth GUICtrlStatusBar_IsSimple GUICtrlStatusBar_Resize GUICtrlStatusBar_SetBkColor GUICtrlStatusBar_SetIcon GUICtrlStatusBar_SetMinHeight GUICtrlStatusBar_SetParts GUICtrlStatusBar_SetSimple GUICtrlStatusBar_SetText GUICtrlStatusBar_SetTipText GUICtrlStatusBar_SetUnicodeFormat GUICtrlStatusBar_ShowHide GUICtrlTab_ActivateTab GUICtrlTab_ClickTab GUICtrlTab_Create GUICtrlTab_DeleteAllItems GUICtrlTab_DeleteItem GUICtrlTab_DeselectAll GUICtrlTab_Destroy GUICtrlTab_FindTab GUICtrlTab_GetCurFocus GUICtrlTab_GetCurSel GUICtrlTab_GetDisplayRect GUICtrlTab_GetDisplayRectEx GUICtrlTab_GetExtendedStyle GUICtrlTab_GetImageList GUICtrlTab_GetItem GUICtrlTab_GetItemCount GUICtrlTab_GetItemImage GUICtrlTab_GetItemParam GUICtrlTab_GetItemRect GUICtrlTab_GetItemRectEx GUICtrlTab_GetItemState GUICtrlTab_GetItemText GUICtrlTab_GetRowCount GUICtrlTab_GetToolTips GUICtrlTab_GetUnicodeFormat GUICtrlTab_HighlightItem GUICtrlTab_HitTest GUICtrlTab_InsertItem GUICtrlTab_RemoveImage GUICtrlTab_SetCurFocus GUICtrlTab_SetCurSel GUICtrlTab_SetExtendedStyle GUICtrlTab_SetImageList GUICtrlTab_SetItem GUICtrlTab_SetItemImage GUICtrlTab_SetItemParam GUICtrlTab_SetItemSize GUICtrlTab_SetItemState GUICtrlTab_SetItemText GUICtrlTab_SetMinTabWidth GUICtrlTab_SetPadding GUICtrlTab_SetToolTips GUICtrlTab_SetUnicodeFormat GUICtrlToolbar_AddBitmap GUICtrlToolbar_AddButton GUICtrlToolbar_AddButtonSep GUICtrlToolbar_AddString GUICtrlToolbar_ButtonCount GUICtrlToolbar_CheckButton GUICtrlToolbar_ClickAccel GUICtrlToolbar_ClickButton GUICtrlToolbar_ClickIndex GUICtrlToolbar_CommandToIndex GUICtrlToolbar_Create GUICtrlToolbar_Customize GUICtrlToolbar_DeleteButton GUICtrlToolbar_Destroy GUICtrlToolbar_EnableButton GUICtrlToolbar_FindToolbar GUICtrlToolbar_GetAnchorHighlight GUICtrlToolbar_GetBitmapFlags GUICtrlToolbar_GetButtonBitmap GUICtrlToolbar_GetButtonInfo GUICtrlToolbar_GetButtonInfoEx GUICtrlToolbar_GetButtonParam GUICtrlToolbar_GetButtonRect GUICtrlToolbar_GetButtonRectEx GUICtrlToolbar_GetButtonSize GUICtrlToolbar_GetButtonState GUICtrlToolbar_GetButtonStyle GUICtrlToolbar_GetButtonText GUICtrlToolbar_GetColorScheme GUICtrlToolbar_GetDisabledImageList GUICtrlToolbar_GetExtendedStyle GUICtrlToolbar_GetHotImageList GUICtrlToolbar_GetHotItem GUICtrlToolbar_GetImageList GUICtrlToolbar_GetInsertMark GUICtrlToolbar_GetInsertMarkColor GUICtrlToolbar_GetMaxSize GUICtrlToolbar_GetMetrics GUICtrlToolbar_GetPadding GUICtrlToolbar_GetRows GUICtrlToolbar_GetString GUICtrlToolbar_GetStyle GUICtrlToolbar_GetStyleAltDrag GUICtrlToolbar_GetStyleCustomErase GUICtrlToolbar_GetStyleFlat GUICtrlToolbar_GetStyleList GUICtrlToolbar_GetStyleRegisterDrop GUICtrlToolbar_GetStyleToolTips GUICtrlToolbar_GetStyleTransparent GUICtrlToolbar_GetStyleWrapable GUICtrlToolbar_GetTextRows GUICtrlToolbar_GetToolTips GUICtrlToolbar_GetUnicodeFormat GUICtrlToolbar_HideButton GUICtrlToolbar_HighlightButton GUICtrlToolbar_HitTest GUICtrlToolbar_IndexToCommand GUICtrlToolbar_InsertButton GUICtrlToolbar_InsertMarkHitTest GUICtrlToolbar_IsButtonChecked GUICtrlToolbar_IsButtonEnabled GUICtrlToolbar_IsButtonHidden GUICtrlToolbar_IsButtonHighlighted GUICtrlToolbar_IsButtonIndeterminate GUICtrlToolbar_IsButtonPressed GUICtrlToolbar_LoadBitmap GUICtrlToolbar_LoadImages GUICtrlToolbar_MapAccelerator GUICtrlToolbar_MoveButton GUICtrlToolbar_PressButton GUICtrlToolbar_SetAnchorHighlight GUICtrlToolbar_SetBitmapSize GUICtrlToolbar_SetButtonBitMap GUICtrlToolbar_SetButtonInfo GUICtrlToolbar_SetButtonInfoEx GUICtrlToolbar_SetButtonParam GUICtrlToolbar_SetButtonSize GUICtrlToolbar_SetButtonState GUICtrlToolbar_SetButtonStyle GUICtrlToolbar_SetButtonText GUICtrlToolbar_SetButtonWidth GUICtrlToolbar_SetCmdID GUICtrlToolbar_SetColorScheme GUICtrlToolbar_SetDisabledImageList GUICtrlToolbar_SetDrawTextFlags GUICtrlToolbar_SetExtendedStyle GUICtrlToolbar_SetHotImageList GUICtrlToolbar_SetHotItem GUICtrlToolbar_SetImageList GUICtrlToolbar_SetIndent GUICtrlToolbar_SetIndeterminate GUICtrlToolbar_SetInsertMark GUICtrlToolbar_SetInsertMarkColor GUICtrlToolbar_SetMaxTextRows GUICtrlToolbar_SetMetrics GUICtrlToolbar_SetPadding GUICtrlToolbar_SetParent GUICtrlToolbar_SetRows GUICtrlToolbar_SetStyle GUICtrlToolbar_SetStyleAltDrag GUICtrlToolbar_SetStyleCustomErase GUICtrlToolbar_SetStyleFlat GUICtrlToolbar_SetStyleList GUICtrlToolbar_SetStyleRegisterDrop GUICtrlToolbar_SetStyleToolTips GUICtrlToolbar_SetStyleTransparent GUICtrlToolbar_SetStyleWrapable GUICtrlToolbar_SetToolTips GUICtrlToolbar_SetUnicodeFormat GUICtrlToolbar_SetWindowTheme GUICtrlTreeView_Add GUICtrlTreeView_AddChild GUICtrlTreeView_AddChildFirst GUICtrlTreeView_AddFirst GUICtrlTreeView_BeginUpdate GUICtrlTreeView_ClickItem GUICtrlTreeView_Create GUICtrlTreeView_CreateDragImage GUICtrlTreeView_CreateSolidBitMap GUICtrlTreeView_Delete GUICtrlTreeView_DeleteAll GUICtrlTreeView_DeleteChildren GUICtrlTreeView_Destroy GUICtrlTreeView_DisplayRect GUICtrlTreeView_DisplayRectEx GUICtrlTreeView_EditText GUICtrlTreeView_EndEdit GUICtrlTreeView_EndUpdate GUICtrlTreeView_EnsureVisible GUICtrlTreeView_Expand GUICtrlTreeView_ExpandedOnce GUICtrlTreeView_FindItem GUICtrlTreeView_FindItemEx GUICtrlTreeView_GetBkColor GUICtrlTreeView_GetBold GUICtrlTreeView_GetChecked GUICtrlTreeView_GetChildCount GUICtrlTreeView_GetChildren GUICtrlTreeView_GetCount GUICtrlTreeView_GetCut GUICtrlTreeView_GetDropTarget GUICtrlTreeView_GetEditControl GUICtrlTreeView_GetExpanded GUICtrlTreeView_GetFirstChild GUICtrlTreeView_GetFirstItem GUICtrlTreeView_GetFirstVisible GUICtrlTreeView_GetFocused GUICtrlTreeView_GetHeight GUICtrlTreeView_GetImageIndex GUICtrlTreeView_GetImageListIconHandle GUICtrlTreeView_GetIndent GUICtrlTreeView_GetInsertMarkColor GUICtrlTreeView_GetISearchString GUICtrlTreeView_GetItemByIndex GUICtrlTreeView_GetItemHandle GUICtrlTreeView_GetItemParam GUICtrlTreeView_GetLastChild GUICtrlTreeView_GetLineColor GUICtrlTreeView_GetNext GUICtrlTreeView_GetNextChild GUICtrlTreeView_GetNextSibling GUICtrlTreeView_GetNextVisible GUICtrlTreeView_GetNormalImageList GUICtrlTreeView_GetParentHandle GUICtrlTreeView_GetParentParam GUICtrlTreeView_GetPrev GUICtrlTreeView_GetPrevChild GUICtrlTreeView_GetPrevSibling GUICtrlTreeView_GetPrevVisible GUICtrlTreeView_GetScrollTime GUICtrlTreeView_GetSelected GUICtrlTreeView_GetSelectedImageIndex GUICtrlTreeView_GetSelection GUICtrlTreeView_GetSiblingCount GUICtrlTreeView_GetState GUICtrlTreeView_GetStateImageIndex GUICtrlTreeView_GetStateImageList GUICtrlTreeView_GetText GUICtrlTreeView_GetTextColor GUICtrlTreeView_GetToolTips GUICtrlTreeView_GetTree GUICtrlTreeView_GetUnicodeFormat GUICtrlTreeView_GetVisible GUICtrlTreeView_GetVisibleCount GUICtrlTreeView_HitTest GUICtrlTreeView_HitTestEx GUICtrlTreeView_HitTestItem GUICtrlTreeView_Index GUICtrlTreeView_InsertItem GUICtrlTreeView_IsFirstItem GUICtrlTreeView_IsParent GUICtrlTreeView_Level GUICtrlTreeView_SelectItem GUICtrlTreeView_SelectItemByIndex GUICtrlTreeView_SetBkColor GUICtrlTreeView_SetBold GUICtrlTreeView_SetChecked GUICtrlTreeView_SetCheckedByIndex GUICtrlTreeView_SetChildren GUICtrlTreeView_SetCut GUICtrlTreeView_SetDropTarget GUICtrlTreeView_SetFocused GUICtrlTreeView_SetHeight GUICtrlTreeView_SetIcon GUICtrlTreeView_SetImageIndex GUICtrlTreeView_SetIndent GUICtrlTreeView_SetInsertMark GUICtrlTreeView_SetInsertMarkColor GUICtrlTreeView_SetItemHeight GUICtrlTreeView_SetItemParam GUICtrlTreeView_SetLineColor GUICtrlTreeView_SetNormalImageList GUICtrlTreeView_SetScrollTime GUICtrlTreeView_SetSelected GUICtrlTreeView_SetSelectedImageIndex GUICtrlTreeView_SetState GUICtrlTreeView_SetStateImageIndex GUICtrlTreeView_SetStateImageList GUICtrlTreeView_SetText GUICtrlTreeView_SetTextColor GUICtrlTreeView_SetToolTips GUICtrlTreeView_SetUnicodeFormat GUICtrlTreeView_Sort GUIImageList_Add GUIImageList_AddBitmap GUIImageList_AddIcon GUIImageList_AddMasked GUIImageList_BeginDrag GUIImageList_Copy GUIImageList_Create GUIImageList_Destroy GUIImageList_DestroyIcon GUIImageList_DragEnter GUIImageList_DragLeave GUIImageList_DragMove GUIImageList_Draw GUIImageList_DrawEx GUIImageList_Duplicate GUIImageList_EndDrag GUIImageList_GetBkColor GUIImageList_GetIcon GUIImageList_GetIconHeight GUIImageList_GetIconSize GUIImageList_GetIconSizeEx GUIImageList_GetIconWidth GUIImageList_GetImageCount GUIImageList_GetImageInfoEx GUIImageList_Remove GUIImageList_ReplaceIcon GUIImageList_SetBkColor GUIImageList_SetIconSize GUIImageList_SetImageCount GUIImageList_Swap GUIScrollBars_EnableScrollBar GUIScrollBars_GetScrollBarInfoEx GUIScrollBars_GetScrollBarRect GUIScrollBars_GetScrollBarRGState GUIScrollBars_GetScrollBarXYLineButton GUIScrollBars_GetScrollBarXYThumbBottom GUIScrollBars_GetScrollBarXYThumbTop GUIScrollBars_GetScrollInfo GUIScrollBars_GetScrollInfoEx GUIScrollBars_GetScrollInfoMax GUIScrollBars_GetScrollInfoMin GUIScrollBars_GetScrollInfoPage GUIScrollBars_GetScrollInfoPos GUIScrollBars_GetScrollInfoTrackPos GUIScrollBars_GetScrollPos GUIScrollBars_GetScrollRange GUIScrollBars_Init GUIScrollBars_ScrollWindow GUIScrollBars_SetScrollInfo GUIScrollBars_SetScrollInfoMax GUIScrollBars_SetScrollInfoMin GUIScrollBars_SetScrollInfoPage GUIScrollBars_SetScrollInfoPos GUIScrollBars_SetScrollRange GUIScrollBars_ShowScrollBar GUIToolTip_Activate GUIToolTip_AddTool GUIToolTip_AdjustRect GUIToolTip_BitsToTTF GUIToolTip_Create GUIToolTip_Deactivate GUIToolTip_DelTool GUIToolTip_Destroy GUIToolTip_EnumTools GUIToolTip_GetBubbleHeight GUIToolTip_GetBubbleSize GUIToolTip_GetBubbleWidth GUIToolTip_GetCurrentTool GUIToolTip_GetDelayTime GUIToolTip_GetMargin GUIToolTip_GetMarginEx GUIToolTip_GetMaxTipWidth GUIToolTip_GetText GUIToolTip_GetTipBkColor GUIToolTip_GetTipTextColor GUIToolTip_GetTitleBitMap GUIToolTip_GetTitleText GUIToolTip_GetToolCount GUIToolTip_GetToolInfo GUIToolTip_HitTest GUIToolTip_NewToolRect GUIToolTip_Pop GUIToolTip_PopUp GUIToolTip_SetDelayTime GUIToolTip_SetMargin GUIToolTip_SetMaxTipWidth GUIToolTip_SetTipBkColor GUIToolTip_SetTipTextColor GUIToolTip_SetTitle GUIToolTip_SetToolInfo GUIToolTip_SetWindowTheme GUIToolTip_ToolExists GUIToolTip_ToolToArray GUIToolTip_TrackActivate GUIToolTip_TrackPosition GUIToolTip_Update GUIToolTip_UpdateTipText HexToString IEAction IEAttach IEBodyReadHTML IEBodyReadText IEBodyWriteHTML IECreate IECreateEmbedded IEDocGetObj IEDocInsertHTML IEDocInsertText IEDocReadHTML IEDocWriteHTML IEErrorNotify IEFormElementCheckBoxSelect IEFormElementGetCollection IEFormElementGetObjByName IEFormElementGetValue IEFormElementOptionSelect IEFormElementRadioSelect IEFormElementSetValue IEFormGetCollection IEFormGetObjByName IEFormImageClick IEFormReset IEFormSubmit IEFrameGetCollection IEFrameGetObjByName IEGetObjById IEGetObjByName IEHeadInsertEventScript IEImgClick IEImgGetCollection IEIsFrameSet IELinkClickByIndex IELinkClickByText IELinkGetCollection IELoadWait IELoadWaitTimeout IENavigate IEPropertyGet IEPropertySet IEQuit IETableGetCollection IETableWriteToArray IETagNameAllGetCollection IETagNameGetCollection IE_Example IE_Introduction IE_VersionInfo INetExplorerCapable INetGetSource INetMail INetSmtpMail IsPressed MathCheckDiv Max MemGlobalAlloc MemGlobalFree MemGlobalLock MemGlobalSize MemGlobalUnlock MemMoveMemory MemVirtualAlloc MemVirtualAllocEx MemVirtualFree MemVirtualFreeEx Min MouseTrap NamedPipes_CallNamedPipe NamedPipes_ConnectNamedPipe NamedPipes_CreateNamedPipe NamedPipes_CreatePipe NamedPipes_DisconnectNamedPipe NamedPipes_GetNamedPipeHandleState NamedPipes_GetNamedPipeInfo NamedPipes_PeekNamedPipe NamedPipes_SetNamedPipeHandleState NamedPipes_TransactNamedPipe NamedPipes_WaitNamedPipe Net_Share_ConnectionEnum Net_Share_FileClose Net_Share_FileEnum Net_Share_FileGetInfo Net_Share_PermStr Net_Share_ResourceStr Net_Share_SessionDel Net_Share_SessionEnum Net_Share_SessionGetInfo Net_Share_ShareAdd Net_Share_ShareCheck Net_Share_ShareDel Net_Share_ShareEnum Net_Share_ShareGetInfo Net_Share_ShareSetInfo Net_Share_StatisticsGetSvr Net_Share_StatisticsGetWrk Now NowCalc NowCalcDate NowDate NowTime PathFull PathGetRelative PathMake PathSplit ProcessGetName ProcessGetPriority Radian ReplaceStringInFile RunDos ScreenCapture_Capture ScreenCapture_CaptureWnd ScreenCapture_SaveImage ScreenCapture_SetBMPFormat ScreenCapture_SetJPGQuality ScreenCapture_SetTIFColorDepth ScreenCapture_SetTIFCompression Security__AdjustTokenPrivileges Security__CreateProcessWithToken Security__DuplicateTokenEx Security__GetAccountSid Security__GetLengthSid Security__GetTokenInformation Security__ImpersonateSelf Security__IsValidSid Security__LookupAccountName Security__LookupAccountSid Security__LookupPrivilegeValue Security__OpenProcessToken Security__OpenThreadToken Security__OpenThreadTokenEx Security__SetPrivilege Security__SetTokenInformation Security__SidToStringSid Security__SidTypeStr Security__StringSidToSid SendMessage SendMessageA SetDate SetTime Singleton SoundClose SoundLength SoundOpen SoundPause SoundPlay SoundPos SoundResume SoundSeek SoundStatus SoundStop SQLite_Changes SQLite_Close SQLite_Display2DResult SQLite_Encode SQLite_ErrCode SQLite_ErrMsg SQLite_Escape SQLite_Exec SQLite_FastEncode SQLite_FastEscape SQLite_FetchData SQLite_FetchNames SQLite_GetTable SQLite_GetTable2d SQLite_LastInsertRowID SQLite_LibVersion SQLite_Open SQLite_Query SQLite_QueryFinalize SQLite_QueryReset SQLite_QuerySingleRow SQLite_SafeMode SQLite_SetTimeout SQLite_Shutdown SQLite_SQLiteExe SQLite_Startup SQLite_TotalChanges StringBetween StringExplode StringInsert StringProper StringRepeat StringTitleCase StringToHex TCPIpToName TempFile TicksToTime Timer_Diff Timer_GetIdleTime Timer_GetTimerID Timer_Init Timer_KillAllTimers Timer_KillTimer Timer_SetTimer TimeToTicks VersionCompare viClose viExecCommand viFindGpib viGpibBusReset viGTL viInteractiveControl viOpen viSetAttribute viSetTimeout WeekNumberISO WinAPI_AbortPath WinAPI_ActivateKeyboardLayout WinAPI_AddClipboardFormatListener WinAPI_AddFontMemResourceEx WinAPI_AddFontResourceEx WinAPI_AddIconOverlay WinAPI_AddIconTransparency WinAPI_AddMRUString WinAPI_AdjustBitmap WinAPI_AdjustTokenPrivileges WinAPI_AdjustWindowRectEx WinAPI_AlphaBlend WinAPI_AngleArc WinAPI_AnimateWindow WinAPI_Arc WinAPI_ArcTo WinAPI_ArrayToStruct WinAPI_AssignProcessToJobObject WinAPI_AssocGetPerceivedType WinAPI_AssocQueryString WinAPI_AttachConsole WinAPI_AttachThreadInput WinAPI_BackupRead WinAPI_BackupReadAbort WinAPI_BackupSeek WinAPI_BackupWrite WinAPI_BackupWriteAbort WinAPI_Beep WinAPI_BeginBufferedPaint WinAPI_BeginDeferWindowPos WinAPI_BeginPaint WinAPI_BeginPath WinAPI_BeginUpdateResource WinAPI_BitBlt WinAPI_BringWindowToTop WinAPI_BroadcastSystemMessage WinAPI_BrowseForFolderDlg WinAPI_BufferedPaintClear WinAPI_BufferedPaintInit WinAPI_BufferedPaintSetAlpha WinAPI_BufferedPaintUnInit WinAPI_CallNextHookEx WinAPI_CallWindowProc WinAPI_CallWindowProcW WinAPI_CascadeWindows WinAPI_ChangeWindowMessageFilterEx WinAPI_CharToOem WinAPI_ChildWindowFromPointEx WinAPI_ClientToScreen WinAPI_ClipCursor WinAPI_CloseDesktop WinAPI_CloseEnhMetaFile WinAPI_CloseFigure WinAPI_CloseHandle WinAPI_CloseThemeData WinAPI_CloseWindow WinAPI_CloseWindowStation WinAPI_CLSIDFromProgID WinAPI_CoInitialize WinAPI_ColorAdjustLuma WinAPI_ColorHLSToRGB WinAPI_ColorRGBToHLS WinAPI_CombineRgn WinAPI_CombineTransform WinAPI_CommandLineToArgv WinAPI_CommDlgExtendedError WinAPI_CommDlgExtendedErrorEx WinAPI_CompareString WinAPI_CompressBitmapBits WinAPI_CompressBuffer WinAPI_ComputeCrc32 WinAPI_ConfirmCredentials WinAPI_CopyBitmap WinAPI_CopyCursor WinAPI_CopyEnhMetaFile WinAPI_CopyFileEx WinAPI_CopyIcon WinAPI_CopyImage WinAPI_CopyRect WinAPI_CopyStruct WinAPI_CoTaskMemAlloc WinAPI_CoTaskMemFree WinAPI_CoTaskMemRealloc WinAPI_CoUninitialize WinAPI_Create32BitHBITMAP WinAPI_Create32BitHICON WinAPI_CreateANDBitmap WinAPI_CreateBitmap WinAPI_CreateBitmapIndirect WinAPI_CreateBrushIndirect WinAPI_CreateBuffer WinAPI_CreateBufferFromStruct WinAPI_CreateCaret WinAPI_CreateColorAdjustment WinAPI_CreateCompatibleBitmap WinAPI_CreateCompatibleBitmapEx WinAPI_CreateCompatibleDC WinAPI_CreateDesktop WinAPI_CreateDIB WinAPI_CreateDIBColorTable WinAPI_CreateDIBitmap WinAPI_CreateDIBSection WinAPI_CreateDirectory WinAPI_CreateDirectoryEx WinAPI_CreateEllipticRgn WinAPI_CreateEmptyIcon WinAPI_CreateEnhMetaFile WinAPI_CreateEvent WinAPI_CreateFile WinAPI_CreateFileEx WinAPI_CreateFileMapping WinAPI_CreateFont WinAPI_CreateFontEx WinAPI_CreateFontIndirect WinAPI_CreateGUID WinAPI_CreateHardLink WinAPI_CreateIcon WinAPI_CreateIconFromResourceEx WinAPI_CreateIconIndirect WinAPI_CreateJobObject WinAPI_CreateMargins WinAPI_CreateMRUList WinAPI_CreateMutex WinAPI_CreateNullRgn WinAPI_CreateNumberFormatInfo WinAPI_CreateObjectID WinAPI_CreatePen WinAPI_CreatePoint WinAPI_CreatePolygonRgn WinAPI_CreateProcess WinAPI_CreateProcessWithToken WinAPI_CreateRect WinAPI_CreateRectEx WinAPI_CreateRectRgn WinAPI_CreateRectRgnIndirect WinAPI_CreateRoundRectRgn WinAPI_CreateSemaphore WinAPI_CreateSize WinAPI_CreateSolidBitmap WinAPI_CreateSolidBrush WinAPI_CreateStreamOnHGlobal WinAPI_CreateString WinAPI_CreateSymbolicLink WinAPI_CreateTransform WinAPI_CreateWindowEx WinAPI_CreateWindowStation WinAPI_DecompressBuffer WinAPI_DecryptFile WinAPI_DeferWindowPos WinAPI_DefineDosDevice WinAPI_DefRawInputProc WinAPI_DefSubclassProc WinAPI_DefWindowProc WinAPI_DefWindowProcW WinAPI_DeleteDC WinAPI_DeleteEnhMetaFile WinAPI_DeleteFile WinAPI_DeleteObject WinAPI_DeleteObjectID WinAPI_DeleteVolumeMountPoint WinAPI_DeregisterShellHookWindow WinAPI_DestroyCaret WinAPI_DestroyCursor WinAPI_DestroyIcon WinAPI_DestroyWindow WinAPI_DeviceIoControl WinAPI_DisplayStruct WinAPI_DllGetVersion WinAPI_DllInstall WinAPI_DllUninstall WinAPI_DPtoLP WinAPI_DragAcceptFiles WinAPI_DragFinish WinAPI_DragQueryFileEx WinAPI_DragQueryPoint WinAPI_DrawAnimatedRects WinAPI_DrawBitmap WinAPI_DrawEdge WinAPI_DrawFocusRect WinAPI_DrawFrameControl WinAPI_DrawIcon WinAPI_DrawIconEx WinAPI_DrawLine WinAPI_DrawShadowText WinAPI_DrawText WinAPI_DrawThemeBackground WinAPI_DrawThemeEdge WinAPI_DrawThemeIcon WinAPI_DrawThemeParentBackground WinAPI_DrawThemeText WinAPI_DrawThemeTextEx WinAPI_DuplicateEncryptionInfoFile WinAPI_DuplicateHandle WinAPI_DuplicateTokenEx WinAPI_DwmDefWindowProc WinAPI_DwmEnableBlurBehindWindow WinAPI_DwmEnableComposition WinAPI_DwmExtendFrameIntoClientArea WinAPI_DwmGetColorizationColor WinAPI_DwmGetColorizationParameters WinAPI_DwmGetWindowAttribute WinAPI_DwmInvalidateIconicBitmaps WinAPI_DwmIsCompositionEnabled WinAPI_DwmQueryThumbnailSourceSize WinAPI_DwmRegisterThumbnail WinAPI_DwmSetColorizationParameters WinAPI_DwmSetIconicLivePreviewBitmap WinAPI_DwmSetIconicThumbnail WinAPI_DwmSetWindowAttribute WinAPI_DwmUnregisterThumbnail WinAPI_DwmUpdateThumbnailProperties WinAPI_DWordToFloat WinAPI_DWordToInt WinAPI_EjectMedia WinAPI_Ellipse WinAPI_EmptyWorkingSet WinAPI_EnableWindow WinAPI_EncryptFile WinAPI_EncryptionDisable WinAPI_EndBufferedPaint WinAPI_EndDeferWindowPos WinAPI_EndPaint WinAPI_EndPath WinAPI_EndUpdateResource WinAPI_EnumChildProcess WinAPI_EnumChildWindows WinAPI_EnumDesktops WinAPI_EnumDesktopWindows WinAPI_EnumDeviceDrivers WinAPI_EnumDisplayDevices WinAPI_EnumDisplayMonitors WinAPI_EnumDisplaySettings WinAPI_EnumDllProc WinAPI_EnumFiles WinAPI_EnumFileStreams WinAPI_EnumFontFamilies WinAPI_EnumHardLinks WinAPI_EnumMRUList WinAPI_EnumPageFiles WinAPI_EnumProcessHandles WinAPI_EnumProcessModules WinAPI_EnumProcessThreads WinAPI_EnumProcessWindows WinAPI_EnumRawInputDevices WinAPI_EnumResourceLanguages WinAPI_EnumResourceNames WinAPI_EnumResourceTypes WinAPI_EnumSystemGeoID WinAPI_EnumSystemLocales WinAPI_EnumUILanguages WinAPI_EnumWindows WinAPI_EnumWindowsPopup WinAPI_EnumWindowStations WinAPI_EnumWindowsTop WinAPI_EqualMemory WinAPI_EqualRect WinAPI_EqualRgn WinAPI_ExcludeClipRect WinAPI_ExpandEnvironmentStrings WinAPI_ExtCreatePen WinAPI_ExtCreateRegion WinAPI_ExtFloodFill WinAPI_ExtractIcon WinAPI_ExtractIconEx WinAPI_ExtSelectClipRgn WinAPI_FatalAppExit WinAPI_FatalExit WinAPI_FileEncryptionStatus WinAPI_FileExists WinAPI_FileIconInit WinAPI_FileInUse WinAPI_FillMemory WinAPI_FillPath WinAPI_FillRect WinAPI_FillRgn WinAPI_FindClose WinAPI_FindCloseChangeNotification WinAPI_FindExecutable WinAPI_FindFirstChangeNotification WinAPI_FindFirstFile WinAPI_FindFirstFileName WinAPI_FindFirstStream WinAPI_FindNextChangeNotification WinAPI_FindNextFile WinAPI_FindNextFileName WinAPI_FindNextStream WinAPI_FindResource WinAPI_FindResourceEx WinAPI_FindTextDlg WinAPI_FindWindow WinAPI_FlashWindow WinAPI_FlashWindowEx WinAPI_FlattenPath WinAPI_FloatToDWord WinAPI_FloatToInt WinAPI_FlushFileBuffers WinAPI_FlushFRBuffer WinAPI_FlushViewOfFile WinAPI_FormatDriveDlg WinAPI_FormatMessage WinAPI_FrameRect WinAPI_FrameRgn WinAPI_FreeLibrary WinAPI_FreeMemory WinAPI_FreeMRUList WinAPI_FreeResource WinAPI_GdiComment WinAPI_GetActiveWindow WinAPI_GetAllUsersProfileDirectory WinAPI_GetAncestor WinAPI_GetApplicationRestartSettings WinAPI_GetArcDirection WinAPI_GetAsyncKeyState WinAPI_GetBinaryType WinAPI_GetBitmapBits WinAPI_GetBitmapDimension WinAPI_GetBitmapDimensionEx WinAPI_GetBkColor WinAPI_GetBkMode WinAPI_GetBoundsRect WinAPI_GetBrushOrg WinAPI_GetBufferedPaintBits WinAPI_GetBufferedPaintDC WinAPI_GetBufferedPaintTargetDC WinAPI_GetBufferedPaintTargetRect WinAPI_GetBValue WinAPI_GetCaretBlinkTime WinAPI_GetCaretPos WinAPI_GetCDType WinAPI_GetClassInfoEx WinAPI_GetClassLongEx WinAPI_GetClassName WinAPI_GetClientHeight WinAPI_GetClientRect WinAPI_GetClientWidth WinAPI_GetClipboardSequenceNumber WinAPI_GetClipBox WinAPI_GetClipCursor WinAPI_GetClipRgn WinAPI_GetColorAdjustment WinAPI_GetCompressedFileSize WinAPI_GetCompression WinAPI_GetConnectedDlg WinAPI_GetCurrentDirectory WinAPI_GetCurrentHwProfile WinAPI_GetCurrentObject WinAPI_GetCurrentPosition WinAPI_GetCurrentProcess WinAPI_GetCurrentProcessExplicitAppUserModelID WinAPI_GetCurrentProcessID WinAPI_GetCurrentThemeName WinAPI_GetCurrentThread WinAPI_GetCurrentThreadId WinAPI_GetCursor WinAPI_GetCursorInfo WinAPI_GetDateFormat WinAPI_GetDC WinAPI_GetDCEx WinAPI_GetDefaultPrinter WinAPI_GetDefaultUserProfileDirectory WinAPI_GetDesktopWindow WinAPI_GetDeviceCaps WinAPI_GetDeviceDriverBaseName WinAPI_GetDeviceDriverFileName WinAPI_GetDeviceGammaRamp WinAPI_GetDIBColorTable WinAPI_GetDIBits WinAPI_GetDiskFreeSpaceEx WinAPI_GetDlgCtrlID WinAPI_GetDlgItem WinAPI_GetDllDirectory WinAPI_GetDriveBusType WinAPI_GetDriveGeometryEx WinAPI_GetDriveNumber WinAPI_GetDriveType WinAPI_GetDurationFormat WinAPI_GetEffectiveClientRect WinAPI_GetEnhMetaFile WinAPI_GetEnhMetaFileBits WinAPI_GetEnhMetaFileDescription WinAPI_GetEnhMetaFileDimension WinAPI_GetEnhMetaFileHeader WinAPI_GetErrorMessage WinAPI_GetErrorMode WinAPI_GetExitCodeProcess WinAPI_GetExtended WinAPI_GetFileAttributes WinAPI_GetFileID WinAPI_GetFileInformationByHandle WinAPI_GetFileInformationByHandleEx WinAPI_GetFilePointerEx WinAPI_GetFileSizeEx WinAPI_GetFileSizeOnDisk WinAPI_GetFileTitle WinAPI_GetFileType WinAPI_GetFileVersionInfo WinAPI_GetFinalPathNameByHandle WinAPI_GetFinalPathNameByHandleEx WinAPI_GetFocus WinAPI_GetFontMemoryResourceInfo WinAPI_GetFontName WinAPI_GetFontResourceInfo WinAPI_GetForegroundWindow WinAPI_GetFRBuffer WinAPI_GetFullPathName WinAPI_GetGeoInfo WinAPI_GetGlyphOutline WinAPI_GetGraphicsMode WinAPI_GetGuiResources WinAPI_GetGUIThreadInfo WinAPI_GetGValue WinAPI_GetHandleInformation WinAPI_GetHGlobalFromStream WinAPI_GetIconDimension WinAPI_GetIconInfo WinAPI_GetIconInfoEx WinAPI_GetIdleTime WinAPI_GetKeyboardLayout WinAPI_GetKeyboardLayoutList WinAPI_GetKeyboardState WinAPI_GetKeyboardType WinAPI_GetKeyNameText WinAPI_GetKeyState WinAPI_GetLastActivePopup WinAPI_GetLastError WinAPI_GetLastErrorMessage WinAPI_GetLayeredWindowAttributes WinAPI_GetLocaleInfo WinAPI_GetLogicalDrives WinAPI_GetMapMode WinAPI_GetMemorySize WinAPI_GetMessageExtraInfo WinAPI_GetModuleFileNameEx WinAPI_GetModuleHandle WinAPI_GetModuleHandleEx WinAPI_GetModuleInformation WinAPI_GetMonitorInfo WinAPI_GetMousePos WinAPI_GetMousePosX WinAPI_GetMousePosY WinAPI_GetMUILanguage WinAPI_GetNumberFormat WinAPI_GetObject WinAPI_GetObjectID WinAPI_GetObjectInfoByHandle WinAPI_GetObjectNameByHandle WinAPI_GetObjectType WinAPI_GetOpenFileName WinAPI_GetOutlineTextMetrics WinAPI_GetOverlappedResult WinAPI_GetParent WinAPI_GetParentProcess WinAPI_GetPerformanceInfo WinAPI_GetPEType WinAPI_GetPhysicallyInstalledSystemMemory WinAPI_GetPixel WinAPI_GetPolyFillMode WinAPI_GetPosFromRect WinAPI_GetPriorityClass WinAPI_GetProcAddress WinAPI_GetProcessAffinityMask WinAPI_GetProcessCommandLine WinAPI_GetProcessFileName WinAPI_GetProcessHandleCount WinAPI_GetProcessID WinAPI_GetProcessIoCounters WinAPI_GetProcessMemoryInfo WinAPI_GetProcessName WinAPI_GetProcessShutdownParameters WinAPI_GetProcessTimes WinAPI_GetProcessUser WinAPI_GetProcessWindowStation WinAPI_GetProcessWorkingDirectory WinAPI_GetProfilesDirectory WinAPI_GetPwrCapabilities WinAPI_GetRawInputBuffer WinAPI_GetRawInputBufferLength WinAPI_GetRawInputData WinAPI_GetRawInputDeviceInfo WinAPI_GetRegionData WinAPI_GetRegisteredRawInputDevices WinAPI_GetRegKeyNameByHandle WinAPI_GetRgnBox WinAPI_GetROP2 WinAPI_GetRValue WinAPI_GetSaveFileName WinAPI_GetShellWindow WinAPI_GetStartupInfo WinAPI_GetStdHandle WinAPI_GetStockObject WinAPI_GetStretchBltMode WinAPI_GetString WinAPI_GetSysColor WinAPI_GetSysColorBrush WinAPI_GetSystemDefaultLangID WinAPI_GetSystemDefaultLCID WinAPI_GetSystemDefaultUILanguage WinAPI_GetSystemDEPPolicy WinAPI_GetSystemInfo WinAPI_GetSystemMetrics WinAPI_GetSystemPowerStatus WinAPI_GetSystemTimes WinAPI_GetSystemWow64Directory WinAPI_GetTabbedTextExtent WinAPI_GetTempFileName WinAPI_GetTextAlign WinAPI_GetTextCharacterExtra WinAPI_GetTextColor WinAPI_GetTextExtentPoint32 WinAPI_GetTextFace WinAPI_GetTextMetrics WinAPI_GetThemeAppProperties WinAPI_GetThemeBackgroundContentRect WinAPI_GetThemeBackgroundExtent WinAPI_GetThemeBackgroundRegion WinAPI_GetThemeBitmap WinAPI_GetThemeBool WinAPI_GetThemeColor WinAPI_GetThemeDocumentationProperty WinAPI_GetThemeEnumValue WinAPI_GetThemeFilename WinAPI_GetThemeFont WinAPI_GetThemeInt WinAPI_GetThemeMargins WinAPI_GetThemeMetric WinAPI_GetThemePartSize WinAPI_GetThemePosition WinAPI_GetThemePropertyOrigin WinAPI_GetThemeRect WinAPI_GetThemeString WinAPI_GetThemeSysBool WinAPI_GetThemeSysColor WinAPI_GetThemeSysColorBrush WinAPI_GetThemeSysFont WinAPI_GetThemeSysInt WinAPI_GetThemeSysSize WinAPI_GetThemeSysString WinAPI_GetThemeTextExtent WinAPI_GetThemeTextMetrics WinAPI_GetThemeTransitionDuration WinAPI_GetThreadDesktop WinAPI_GetThreadErrorMode WinAPI_GetThreadLocale WinAPI_GetThreadUILanguage WinAPI_GetTickCount WinAPI_GetTickCount64 WinAPI_GetTimeFormat WinAPI_GetTopWindow WinAPI_GetUDFColorMode WinAPI_GetUpdateRect WinAPI_GetUpdateRgn WinAPI_GetUserDefaultLangID WinAPI_GetUserDefaultLCID WinAPI_GetUserDefaultUILanguage WinAPI_GetUserGeoID WinAPI_GetUserObjectInformation WinAPI_GetVersion WinAPI_GetVersionEx WinAPI_GetVolumeInformation WinAPI_GetVolumeInformationByHandle WinAPI_GetVolumeNameForVolumeMountPoint WinAPI_GetWindow WinAPI_GetWindowDC WinAPI_GetWindowDisplayAffinity WinAPI_GetWindowExt WinAPI_GetWindowFileName WinAPI_GetWindowHeight WinAPI_GetWindowInfo WinAPI_GetWindowLong WinAPI_GetWindowOrg WinAPI_GetWindowPlacement WinAPI_GetWindowRect WinAPI_GetWindowRgn WinAPI_GetWindowRgnBox WinAPI_GetWindowSubclass WinAPI_GetWindowText WinAPI_GetWindowTheme WinAPI_GetWindowThreadProcessId WinAPI_GetWindowWidth WinAPI_GetWorkArea WinAPI_GetWorldTransform WinAPI_GetXYFromPoint WinAPI_GlobalMemoryStatus WinAPI_GradientFill WinAPI_GUIDFromString WinAPI_GUIDFromStringEx WinAPI_HashData WinAPI_HashString WinAPI_HiByte WinAPI_HideCaret WinAPI_HiDWord WinAPI_HiWord WinAPI_InflateRect WinAPI_InitMUILanguage WinAPI_InProcess WinAPI_IntersectClipRect WinAPI_IntersectRect WinAPI_IntToDWord WinAPI_IntToFloat WinAPI_InvalidateRect WinAPI_InvalidateRgn WinAPI_InvertANDBitmap WinAPI_InvertColor WinAPI_InvertRect WinAPI_InvertRgn WinAPI_IOCTL WinAPI_IsAlphaBitmap WinAPI_IsBadCodePtr WinAPI_IsBadReadPtr WinAPI_IsBadStringPtr WinAPI_IsBadWritePtr WinAPI_IsChild WinAPI_IsClassName WinAPI_IsDoorOpen WinAPI_IsElevated WinAPI_IsHungAppWindow WinAPI_IsIconic WinAPI_IsInternetConnected WinAPI_IsLoadKBLayout WinAPI_IsMemory WinAPI_IsNameInExpression WinAPI_IsNetworkAlive WinAPI_IsPathShared WinAPI_IsProcessInJob WinAPI_IsProcessorFeaturePresent WinAPI_IsRectEmpty WinAPI_IsThemeActive WinAPI_IsThemeBackgroundPartiallyTransparent WinAPI_IsThemePartDefined WinAPI_IsValidLocale WinAPI_IsWindow WinAPI_IsWindowEnabled WinAPI_IsWindowUnicode WinAPI_IsWindowVisible WinAPI_IsWow64Process WinAPI_IsWritable WinAPI_IsZoomed WinAPI_Keybd_Event WinAPI_KillTimer WinAPI_LineDDA WinAPI_LineTo WinAPI_LoadBitmap WinAPI_LoadCursor WinAPI_LoadCursorFromFile WinAPI_LoadIcon WinAPI_LoadIconMetric WinAPI_LoadIconWithScaleDown WinAPI_LoadImage WinAPI_LoadIndirectString WinAPI_LoadKeyboardLayout WinAPI_LoadLibrary WinAPI_LoadLibraryEx WinAPI_LoadMedia WinAPI_LoadResource WinAPI_LoadShell32Icon WinAPI_LoadString WinAPI_LoadStringEx WinAPI_LoByte WinAPI_LocalFree WinAPI_LockDevice WinAPI_LockFile WinAPI_LockResource WinAPI_LockWindowUpdate WinAPI_LockWorkStation WinAPI_LoDWord WinAPI_LongMid WinAPI_LookupIconIdFromDirectoryEx WinAPI_LoWord WinAPI_LPtoDP WinAPI_MAKELANGID WinAPI_MAKELCID WinAPI_MakeLong WinAPI_MakeQWord WinAPI_MakeWord WinAPI_MapViewOfFile WinAPI_MapVirtualKey WinAPI_MaskBlt WinAPI_MessageBeep WinAPI_MessageBoxCheck WinAPI_MessageBoxIndirect WinAPI_MirrorIcon WinAPI_ModifyWorldTransform WinAPI_MonitorFromPoint WinAPI_MonitorFromRect WinAPI_MonitorFromWindow WinAPI_Mouse_Event WinAPI_MoveFileEx WinAPI_MoveMemory WinAPI_MoveTo WinAPI_MoveToEx WinAPI_MoveWindow WinAPI_MsgBox WinAPI_MulDiv WinAPI_MultiByteToWideChar WinAPI_MultiByteToWideCharEx WinAPI_NtStatusToDosError WinAPI_OemToChar WinAPI_OffsetClipRgn WinAPI_OffsetPoints WinAPI_OffsetRect WinAPI_OffsetRgn WinAPI_OffsetWindowOrg WinAPI_OpenDesktop WinAPI_OpenFileById WinAPI_OpenFileDlg WinAPI_OpenFileMapping WinAPI_OpenIcon WinAPI_OpenInputDesktop WinAPI_OpenJobObject WinAPI_OpenMutex WinAPI_OpenProcess WinAPI_OpenProcessToken WinAPI_OpenSemaphore WinAPI_OpenThemeData WinAPI_OpenWindowStation WinAPI_PageSetupDlg WinAPI_PaintDesktop WinAPI_PaintRgn WinAPI_ParseURL WinAPI_ParseUserName WinAPI_PatBlt WinAPI_PathAddBackslash WinAPI_PathAddExtension WinAPI_PathAppend WinAPI_PathBuildRoot WinAPI_PathCanonicalize WinAPI_PathCommonPrefix WinAPI_PathCompactPath WinAPI_PathCompactPathEx WinAPI_PathCreateFromUrl WinAPI_PathFindExtension WinAPI_PathFindFileName WinAPI_PathFindNextComponent WinAPI_PathFindOnPath WinAPI_PathGetArgs WinAPI_PathGetCharType WinAPI_PathGetDriveNumber WinAPI_PathIsContentType WinAPI_PathIsDirectory WinAPI_PathIsDirectoryEmpty WinAPI_PathIsExe WinAPI_PathIsFileSpec WinAPI_PathIsLFNFileSpec WinAPI_PathIsRelative WinAPI_PathIsRoot WinAPI_PathIsSameRoot WinAPI_PathIsSystemFolder WinAPI_PathIsUNC WinAPI_PathIsUNCServer WinAPI_PathIsUNCServerShare WinAPI_PathMakeSystemFolder WinAPI_PathMatchSpec WinAPI_PathParseIconLocation WinAPI_PathRelativePathTo WinAPI_PathRemoveArgs WinAPI_PathRemoveBackslash WinAPI_PathRemoveExtension WinAPI_PathRemoveFileSpec WinAPI_PathRenameExtension WinAPI_PathSearchAndQualify WinAPI_PathSkipRoot WinAPI_PathStripPath WinAPI_PathStripToRoot WinAPI_PathToRegion WinAPI_PathUndecorate WinAPI_PathUnExpandEnvStrings WinAPI_PathUnmakeSystemFolder WinAPI_PathUnquoteSpaces WinAPI_PathYetAnotherMakeUniqueName WinAPI_PickIconDlg WinAPI_PlayEnhMetaFile WinAPI_PlaySound WinAPI_PlgBlt WinAPI_PointFromRect WinAPI_PolyBezier WinAPI_PolyBezierTo WinAPI_PolyDraw WinAPI_Polygon WinAPI_PostMessage WinAPI_PrimaryLangId WinAPI_PrintDlg WinAPI_PrintDlgEx WinAPI_PrintWindow WinAPI_ProgIDFromCLSID WinAPI_PtInRect WinAPI_PtInRectEx WinAPI_PtInRegion WinAPI_PtVisible WinAPI_QueryDosDevice WinAPI_QueryInformationJobObject WinAPI_QueryPerformanceCounter WinAPI_QueryPerformanceFrequency WinAPI_RadialGradientFill WinAPI_ReadDirectoryChanges WinAPI_ReadFile WinAPI_ReadProcessMemory WinAPI_Rectangle WinAPI_RectInRegion WinAPI_RectIsEmpty WinAPI_RectVisible WinAPI_RedrawWindow WinAPI_RegCloseKey WinAPI_RegConnectRegistry WinAPI_RegCopyTree WinAPI_RegCopyTreeEx WinAPI_RegCreateKey WinAPI_RegDeleteEmptyKey WinAPI_RegDeleteKey WinAPI_RegDeleteKeyValue WinAPI_RegDeleteTree WinAPI_RegDeleteTreeEx WinAPI_RegDeleteValue WinAPI_RegDisableReflectionKey WinAPI_RegDuplicateHKey WinAPI_RegEnableReflectionKey WinAPI_RegEnumKey WinAPI_RegEnumValue WinAPI_RegFlushKey WinAPI_RegisterApplicationRestart WinAPI_RegisterClass WinAPI_RegisterClassEx WinAPI_RegisterHotKey WinAPI_RegisterPowerSettingNotification WinAPI_RegisterRawInputDevices WinAPI_RegisterShellHookWindow WinAPI_RegisterWindowMessage WinAPI_RegLoadMUIString WinAPI_RegNotifyChangeKeyValue WinAPI_RegOpenKey WinAPI_RegQueryInfoKey WinAPI_RegQueryLastWriteTime WinAPI_RegQueryMultipleValues WinAPI_RegQueryReflectionKey WinAPI_RegQueryValue WinAPI_RegRestoreKey WinAPI_RegSaveKey WinAPI_RegSetValue WinAPI_ReleaseCapture WinAPI_ReleaseDC WinAPI_ReleaseMutex WinAPI_ReleaseSemaphore WinAPI_ReleaseStream WinAPI_RemoveClipboardFormatListener WinAPI_RemoveDirectory WinAPI_RemoveFontMemResourceEx WinAPI_RemoveFontResourceEx WinAPI_RemoveWindowSubclass WinAPI_ReOpenFile WinAPI_ReplaceFile WinAPI_ReplaceTextDlg WinAPI_ResetEvent WinAPI_RestartDlg WinAPI_RestoreDC WinAPI_RGB WinAPI_RotatePoints WinAPI_RoundRect WinAPI_SaveDC WinAPI_SaveFileDlg WinAPI_SaveHBITMAPToFile WinAPI_SaveHICONToFile WinAPI_ScaleWindowExt WinAPI_ScreenToClient WinAPI_SearchPath WinAPI_SelectClipPath WinAPI_SelectClipRgn WinAPI_SelectObject WinAPI_SendMessageTimeout WinAPI_SetActiveWindow WinAPI_SetArcDirection WinAPI_SetBitmapBits WinAPI_SetBitmapDimensionEx WinAPI_SetBkColor WinAPI_SetBkMode WinAPI_SetBoundsRect WinAPI_SetBrushOrg WinAPI_SetCapture WinAPI_SetCaretBlinkTime WinAPI_SetCaretPos WinAPI_SetClassLongEx WinAPI_SetColorAdjustment WinAPI_SetCompression WinAPI_SetCurrentDirectory WinAPI_SetCurrentProcessExplicitAppUserModelID WinAPI_SetCursor WinAPI_SetDCBrushColor WinAPI_SetDCPenColor WinAPI_SetDefaultPrinter WinAPI_SetDeviceGammaRamp WinAPI_SetDIBColorTable WinAPI_SetDIBits WinAPI_SetDIBitsToDevice WinAPI_SetDllDirectory WinAPI_SetEndOfFile WinAPI_SetEnhMetaFileBits WinAPI_SetErrorMode WinAPI_SetEvent WinAPI_SetFileAttributes WinAPI_SetFileInformationByHandleEx WinAPI_SetFilePointer WinAPI_SetFilePointerEx WinAPI_SetFileShortName WinAPI_SetFileValidData WinAPI_SetFocus WinAPI_SetFont WinAPI_SetForegroundWindow WinAPI_SetFRBuffer WinAPI_SetGraphicsMode WinAPI_SetHandleInformation WinAPI_SetInformationJobObject WinAPI_SetKeyboardLayout WinAPI_SetKeyboardState WinAPI_SetLastError WinAPI_SetLayeredWindowAttributes WinAPI_SetLocaleInfo WinAPI_SetMapMode WinAPI_SetMessageExtraInfo WinAPI_SetParent WinAPI_SetPixel WinAPI_SetPolyFillMode WinAPI_SetPriorityClass WinAPI_SetProcessAffinityMask WinAPI_SetProcessShutdownParameters WinAPI_SetProcessWindowStation WinAPI_SetRectRgn WinAPI_SetROP2 WinAPI_SetSearchPathMode WinAPI_SetStretchBltMode WinAPI_SetSysColors WinAPI_SetSystemCursor WinAPI_SetTextAlign WinAPI_SetTextCharacterExtra WinAPI_SetTextColor WinAPI_SetTextJustification WinAPI_SetThemeAppProperties WinAPI_SetThreadDesktop WinAPI_SetThreadErrorMode WinAPI_SetThreadExecutionState WinAPI_SetThreadLocale WinAPI_SetThreadUILanguage WinAPI_SetTimer WinAPI_SetUDFColorMode WinAPI_SetUserGeoID WinAPI_SetUserObjectInformation WinAPI_SetVolumeMountPoint WinAPI_SetWindowDisplayAffinity WinAPI_SetWindowExt WinAPI_SetWindowLong WinAPI_SetWindowOrg WinAPI_SetWindowPlacement WinAPI_SetWindowPos WinAPI_SetWindowRgn WinAPI_SetWindowsHookEx WinAPI_SetWindowSubclass WinAPI_SetWindowText WinAPI_SetWindowTheme WinAPI_SetWinEventHook WinAPI_SetWorldTransform WinAPI_SfcIsFileProtected WinAPI_SfcIsKeyProtected WinAPI_ShellAboutDlg WinAPI_ShellAddToRecentDocs WinAPI_ShellChangeNotify WinAPI_ShellChangeNotifyDeregister WinAPI_ShellChangeNotifyRegister WinAPI_ShellCreateDirectory WinAPI_ShellEmptyRecycleBin WinAPI_ShellExecute WinAPI_ShellExecuteEx WinAPI_ShellExtractAssociatedIcon WinAPI_ShellExtractIcon WinAPI_ShellFileOperation WinAPI_ShellFlushSFCache WinAPI_ShellGetFileInfo WinAPI_ShellGetIconOverlayIndex WinAPI_ShellGetImageList WinAPI_ShellGetKnownFolderIDList WinAPI_ShellGetKnownFolderPath WinAPI_ShellGetLocalizedName WinAPI_ShellGetPathFromIDList WinAPI_ShellGetSetFolderCustomSettings WinAPI_ShellGetSettings WinAPI_ShellGetSpecialFolderLocation WinAPI_ShellGetSpecialFolderPath WinAPI_ShellGetStockIconInfo WinAPI_ShellILCreateFromPath WinAPI_ShellNotifyIcon WinAPI_ShellNotifyIconGetRect WinAPI_ShellObjectProperties WinAPI_ShellOpenFolderAndSelectItems WinAPI_ShellOpenWithDlg WinAPI_ShellQueryRecycleBin WinAPI_ShellQueryUserNotificationState WinAPI_ShellRemoveLocalizedName WinAPI_ShellRestricted WinAPI_ShellSetKnownFolderPath WinAPI_ShellSetLocalizedName WinAPI_ShellSetSettings WinAPI_ShellStartNetConnectionDlg WinAPI_ShellUpdateImage WinAPI_ShellUserAuthenticationDlg WinAPI_ShellUserAuthenticationDlgEx WinAPI_ShortToWord WinAPI_ShowCaret WinAPI_ShowCursor WinAPI_ShowError WinAPI_ShowLastError WinAPI_ShowMsg WinAPI_ShowOwnedPopups WinAPI_ShowWindow WinAPI_ShutdownBlockReasonCreate WinAPI_ShutdownBlockReasonDestroy WinAPI_ShutdownBlockReasonQuery WinAPI_SizeOfResource WinAPI_StretchBlt WinAPI_StretchDIBits WinAPI_StrFormatByteSize WinAPI_StrFormatByteSizeEx WinAPI_StrFormatKBSize WinAPI_StrFromTimeInterval WinAPI_StringFromGUID WinAPI_StringLenA WinAPI_StringLenW WinAPI_StrLen WinAPI_StrokeAndFillPath WinAPI_StrokePath WinAPI_StructToArray WinAPI_SubLangId WinAPI_SubtractRect WinAPI_SwapDWord WinAPI_SwapQWord WinAPI_SwapWord WinAPI_SwitchColor WinAPI_SwitchDesktop WinAPI_SwitchToThisWindow WinAPI_SystemParametersInfo WinAPI_TabbedTextOut WinAPI_TerminateJobObject WinAPI_TerminateProcess WinAPI_TextOut WinAPI_TileWindows WinAPI_TrackMouseEvent WinAPI_TransparentBlt WinAPI_TwipsPerPixelX WinAPI_TwipsPerPixelY WinAPI_UnhookWindowsHookEx WinAPI_UnhookWinEvent WinAPI_UnionRect WinAPI_UnionStruct WinAPI_UniqueHardwareID WinAPI_UnloadKeyboardLayout WinAPI_UnlockFile WinAPI_UnmapViewOfFile WinAPI_UnregisterApplicationRestart WinAPI_UnregisterClass WinAPI_UnregisterHotKey WinAPI_UnregisterPowerSettingNotification WinAPI_UpdateLayeredWindow WinAPI_UpdateLayeredWindowEx WinAPI_UpdateLayeredWindowIndirect WinAPI_UpdateResource WinAPI_UpdateWindow WinAPI_UrlApplyScheme WinAPI_UrlCanonicalize WinAPI_UrlCombine WinAPI_UrlCompare WinAPI_UrlCreateFromPath WinAPI_UrlFixup WinAPI_UrlGetPart WinAPI_UrlHash WinAPI_UrlIs WinAPI_UserHandleGrantAccess WinAPI_ValidateRect WinAPI_ValidateRgn WinAPI_VerQueryRoot WinAPI_VerQueryValue WinAPI_VerQueryValueEx WinAPI_WaitForInputIdle WinAPI_WaitForMultipleObjects WinAPI_WaitForSingleObject WinAPI_WideCharToMultiByte WinAPI_WidenPath WinAPI_WindowFromDC WinAPI_WindowFromPoint WinAPI_WordToShort WinAPI_Wow64EnableWow64FsRedirection WinAPI_WriteConsole WinAPI_WriteFile WinAPI_WriteProcessMemory WinAPI_ZeroMemory WinNet_AddConnection WinNet_AddConnection2 WinNet_AddConnection3 WinNet_CancelConnection WinNet_CancelConnection2 WinNet_CloseEnum WinNet_ConnectionDialog WinNet_ConnectionDialog1 WinNet_DisconnectDialog WinNet_DisconnectDialog1 WinNet_EnumResource WinNet_GetConnection WinNet_GetConnectionPerformance WinNet_GetLastError WinNet_GetNetworkInformation WinNet_GetProviderName WinNet_GetResourceInformation WinNet_GetResourceParent WinNet_GetUniversalName WinNet_GetUser WinNet_OpenEnum WinNet_RestoreConnection WinNet_UseConnection Word_Create Word_DocAdd Word_DocAttach Word_DocClose Word_DocExport Word_DocFind Word_DocFindReplace Word_DocGet Word_DocLinkAdd Word_DocLinkGet Word_DocOpen Word_DocPictureAdd Word_DocPrint Word_DocRangeSet Word_DocSave Word_DocSaveAs Word_DocTableRead Word_DocTableWrite Word_Quit",e={
-constant:"SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five quote empty one true return cr linefeed right backslash null seven tab three two RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK",operator:"div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within contains ends with begins the keys of keys",built_in:"put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg avgDev base64Decode base64Encode baseConvert binaryDecode binaryEncode byteOffset byteToNum cachedURL cachedURLs charToNum cipherNames codepointOffset codepointProperty codepointToNum codeunitOffset commandNames compound compress constantNames cos date dateFormat decompress directories diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames geometricMean global globals hasMemory harmonicMean hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge millisec millisecs millisecond milliseconds min monthNames nativeCharToNum normalizeText num number numToByte numToChar numToCodepoint numToNativeChar offset open openfiles openProcesses openProcessIDs openSockets paragraphOffset paramCount param params peerAddress pendingMessages platform popStdDev populationStandardDeviation populationVariance popVariance processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLCreateTreeFromFileWithNamespaces revXMLCreateTreeWithNamespaces revXMLDataFromXPathQuery revXMLEvaluateXPath revXMLFirstChild revXMLMatchingNode revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_Execute revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sampVariance sec secs seconds sentenceOffset sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound stdDev sum sysError systemVersion tan tempName textDecode textEncode tick ticks time to tokenOffset toLower toUpper transpose truewordOffset trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus uuid value variableNames variance version waitDepth weekdayNames wordOffset xsltApplyStylesheet xsltApplyStylesheetFromFile xsltLoadStylesheet xsltLoadStylesheetFromFile add breakpoint cancel clear local variable file word line folder directory URL close socket process combine constant convert create new alias folder directory decrypt delete variable word line folder directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime libURLSetStatusCallback load multiply socket prepare process post seek rel relative read from process rename replace require resetAll resolve revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split start stop subtract union unload wait write"},contains:[b,{className:"keyword",begin:"\\bend\\sif\\b"},{className:"function",beginKeywords:"function",end:"$",contains:[b,e,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE,d]},{className:"function",begin:"\\bend\\s+",end:"$",keywords:"end",contains:[e,d]},{className:"command",beginKeywords:"command on",end:"$",contains:[b,e,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE,d]},{className:"preprocessor",variants:[{begin:"<\\?(rev|lc|livecode)",relevance:10},{begin:"<\\?"},{begin:"\\?>"}]},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE,d].concat(c),illegal:";$|^\\[|^="}}),a.registerLanguage("livescript",function(a){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger case default function var with then unless until loop of by when and or is isnt not it that otherwise from to til fallthrough super case default function var void const let enum export import native __hasProp __extends __slice __bind __indexOf",literal:"true false null undefined yes no on off it that void",built_in:"npm require console print module global window document"},c="[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*",d=a.inherit(a.TITLE_MODE,{begin:c}),e={className:"subst",begin:/#\{/,end:/}/,keywords:b},f={className:"subst",begin:/#[A-Za-z$_]/,end:/(?:\-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/,keywords:b},g=[a.BINARY_NUMBER_MODE,{className:"number",begin:"(\\b0[xX][a-fA-F0-9_]+)|(\\b\\d(\\d|_\\d)*(\\.(\\d(\\d|_\\d)*)?)?(_*[eE]([-+]\\d(_\\d|\\d)*)?)?[_a-z]*)",relevance:0,starts:{end:"(\\s*/)?",relevance:0}},{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[a.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[a.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[a.BACKSLASH_ESCAPE,e,f]},{begin:/"/,end:/"/,contains:[a.BACKSLASH_ESCAPE,e,f]},{begin:/\\/,end:/(\s|$)/,excludeEnd:!0}]},{className:"pi",variants:[{begin:"//",end:"//[gim]*",contains:[e,a.HASH_COMMENT_MODE]},{begin:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{className:"property",begin:"@"+c},{begin:"``",end:"``",excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"}];e.contains=g;var h={className:"params",begin:"\\(",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:b,contains:["self"].concat(g)}]};return{aliases:["ls"],keywords:b,illegal:/\/\*/,contains:g.concat([a.COMMENT("\\/\\*","\\*\\/"),a.HASH_COMMENT_MODE,{className:"function",contains:[d,h],returnBegin:!0,variants:[{begin:"("+c+"\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B\\->\\*?",end:"\\->\\*?"},{begin:"("+c+"\\s*(?:=|:=)\\s*)?!?(\\(.*\\))?\\s*\\B[-~]{1,2}>\\*?",end:"[-~]{1,2}>\\*?"},{begin:"("+c+"\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B!?[-~]{1,2}>\\*?",end:"!?[-~]{1,2}>\\*?"}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[d]},d]},{className:"attribute",begin:c+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}),a.registerLanguage("lua",function(a){var b="\\[=*\\[",c="\\]=*\\]",d={begin:b,end:c,contains:["self"]},e=[a.COMMENT("--(?!"+b+")","$"),a.COMMENT("--"+b,c,{contains:[d],relevance:10})];return{lexemes:a.UNDERSCORE_IDENT_RE,keywords:{keyword:"and break do else elseif end false for if in local nil not or repeat return then true until while",built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table"},contains:e.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[a.inherit(a.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:e}].concat(e)},a.C_NUMBER_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"string",begin:b,end:c,contains:[d],relevance:5}])}}),a.registerLanguage("makefile",function(a){var b={className:"variable",begin:/\$\(/,end:/\)/,contains:[a.BACKSLASH_ESCAPE]};return{aliases:["mk","mak"],contains:[a.HASH_COMMENT_MODE,{begin:/^\w+\s*\W*=/,returnBegin:!0,relevance:0,starts:{className:"constant",end:/\s*\W*=/,excludeEnd:!0,starts:{end:/$/,relevance:0,contains:[b]}}},{className:"title",begin:/^[\w]+:\s*$/},{className:"phony",begin:/^\.PHONY:/,end:/$/,keywords:".PHONY",lexemes:/[\.\w]+/},{begin:/^\t+/,end:/$/,relevance:0,contains:[a.QUOTE_STRING_MODE,b]}]}}),a.registerLanguage("mathematica",function(a){return{aliases:["mma"],lexemes:"(\\$|\\b)"+a.IDENT_RE+"\\b",keywords:"AbelianGroup Abort AbortKernels AbortProtect Above Abs Absolute AbsoluteCorrelation AbsoluteCorrelationFunction AbsoluteCurrentValue AbsoluteDashing AbsoluteFileName AbsoluteOptions AbsolutePointSize AbsoluteThickness AbsoluteTime AbsoluteTiming AccountingForm Accumulate Accuracy AccuracyGoal ActionDelay ActionMenu ActionMenuBox ActionMenuBoxOptions Active ActiveItem ActiveStyle AcyclicGraphQ AddOnHelpPath AddTo AdjacencyGraph AdjacencyList AdjacencyMatrix AdjustmentBox AdjustmentBoxOptions AdjustTimeSeriesForecast AffineTransform After AiryAi AiryAiPrime AiryAiZero AiryBi AiryBiPrime AiryBiZero AlgebraicIntegerQ AlgebraicNumber AlgebraicNumberDenominator AlgebraicNumberNorm AlgebraicNumberPolynomial AlgebraicNumberTrace AlgebraicRules AlgebraicRulesData Algebraics AlgebraicUnitQ Alignment AlignmentMarker AlignmentPoint All AllowedDimensions AllowGroupClose AllowInlineCells AllowKernelInitialization AllowReverseGroupClose AllowScriptLevelChange AlphaChannel AlternatingGroup AlternativeHypothesis Alternatives AmbientLight Analytic AnchoredSearch And AndersonDarlingTest AngerJ AngleBracket AngularGauge Animate AnimationCycleOffset AnimationCycleRepetitions AnimationDirection AnimationDisplayTime AnimationRate AnimationRepetitions AnimationRunning Animator AnimatorBox AnimatorBoxOptions AnimatorElements Annotation Annuity AnnuityDue Antialiasing Antisymmetric Apart ApartSquareFree Appearance AppearanceElements AppellF1 Append AppendTo Apply ArcCos ArcCosh ArcCot ArcCoth ArcCsc ArcCsch ArcSec ArcSech ArcSin ArcSinDistribution ArcSinh ArcTan ArcTanh Arg ArgMax ArgMin ArgumentCountQ ARIMAProcess ArithmeticGeometricMean ARMAProcess ARProcess Array ArrayComponents ArrayDepth ArrayFlatten ArrayPad ArrayPlot ArrayQ ArrayReshape ArrayRules Arrays Arrow Arrow3DBox ArrowBox Arrowheads AspectRatio AspectRatioFixed Assert Assuming Assumptions AstronomicalData Asynchronous AsynchronousTaskObject AsynchronousTasks AtomQ Attributes AugmentedSymmetricPolynomial AutoAction AutoDelete AutoEvaluateEvents AutoGeneratedPackage AutoIndent AutoIndentSpacings AutoItalicWords AutoloadPath AutoMatch Automatic AutomaticImageSize AutoMultiplicationSymbol AutoNumberFormatting AutoOpenNotebooks AutoOpenPalettes AutorunSequencing AutoScaling AutoScroll AutoSpacing AutoStyleOptions AutoStyleWords Axes AxesEdge AxesLabel AxesOrigin AxesStyle Axis BabyMonsterGroupB Back Background BackgroundTasksSettings Backslash Backsubstitution Backward Band BandpassFilter BandstopFilter BarabasiAlbertGraphDistribution BarChart BarChart3D BarLegend BarlowProschanImportance BarnesG BarOrigin BarSpacing BartlettHannWindow BartlettWindow BaseForm Baseline BaselinePosition BaseStyle BatesDistribution BattleLemarieWavelet Because BeckmannDistribution Beep Before Begin BeginDialogPacket BeginFrontEndInteractionPacket BeginPackage BellB BellY Below BenfordDistribution BeniniDistribution BenktanderGibratDistribution BenktanderWeibullDistribution BernoulliB BernoulliDistribution BernoulliGraphDistribution BernoulliProcess BernsteinBasis BesselFilterModel BesselI BesselJ BesselJZero BesselK BesselY BesselYZero Beta BetaBinomialDistribution BetaDistribution BetaNegativeBinomialDistribution BetaPrimeDistribution BetaRegularized BetweennessCentrality BezierCurve BezierCurve3DBox BezierCurve3DBoxOptions BezierCurveBox BezierCurveBoxOptions BezierFunction BilateralFilter Binarize BinaryFormat BinaryImageQ BinaryRead BinaryReadList BinaryWrite BinCounts BinLists Binomial BinomialDistribution BinomialProcess BinormalDistribution BiorthogonalSplineWavelet BipartiteGraphQ BirnbaumImportance BirnbaumSaundersDistribution BitAnd BitClear BitGet BitLength BitNot BitOr BitSet BitShiftLeft BitShiftRight BitXor Black BlackmanHarrisWindow BlackmanNuttallWindow BlackmanWindow Blank BlankForm BlankNullSequence BlankSequence Blend Block BlockRandom BlomqvistBeta BlomqvistBetaTest Blue Blur BodePlot BohmanWindow Bold Bookmarks Boole BooleanConsecutiveFunction BooleanConvert BooleanCountingFunction BooleanFunction BooleanGraph BooleanMaxterms BooleanMinimize BooleanMinterms Booleans BooleanTable BooleanVariables BorderDimensions BorelTannerDistribution Bottom BottomHatTransform BoundaryStyle Bounds Box BoxBaselineShift BoxData BoxDimensions Boxed Boxes BoxForm BoxFormFormatTypes BoxFrame BoxID BoxMargins BoxMatrix BoxRatios BoxRotation BoxRotationPoint BoxStyle BoxWhiskerChart Bra BracketingBar BraKet BrayCurtisDistance BreadthFirstScan Break Brown BrownForsytheTest BrownianBridgeProcess BrowserCategory BSplineBasis BSplineCurve BSplineCurve3DBox BSplineCurveBox BSplineCurveBoxOptions BSplineFunction BSplineSurface BSplineSurface3DBox BubbleChart BubbleChart3D BubbleScale BubbleSizes BulletGauge BusinessDayQ ButterflyGraph ButterworthFilterModel Button ButtonBar ButtonBox ButtonBoxOptions ButtonCell ButtonContents ButtonData ButtonEvaluator ButtonExpandable ButtonFrame ButtonFunction ButtonMargins ButtonMinHeight ButtonNote ButtonNotebook ButtonSource ButtonStyle ButtonStyleMenuListing Byte ByteCount ByteOrdering C CachedValue CacheGraphics CalendarData CalendarType CallPacket CanberraDistance Cancel CancelButton CandlestickChart Cap CapForm CapitalDifferentialD CardinalBSplineBasis CarmichaelLambda Cases Cashflow Casoratian Catalan CatalanNumber Catch CauchyDistribution CauchyWindow CayleyGraph CDF CDFDeploy CDFInformation CDFWavelet Ceiling Cell CellAutoOverwrite CellBaseline CellBoundingBox CellBracketOptions CellChangeTimes CellContents CellContext CellDingbat CellDynamicExpression CellEditDuplicate CellElementsBoundingBox CellElementSpacings CellEpilog CellEvaluationDuplicate CellEvaluationFunction CellEventActions CellFrame CellFrameColor CellFrameLabelMargins CellFrameLabels CellFrameMargins CellGroup CellGroupData CellGrouping CellGroupingRules CellHorizontalScrolling CellID CellLabel CellLabelAutoDelete CellLabelMargins CellLabelPositioning CellMargins CellObject CellOpen CellPrint CellProlog Cells CellSize CellStyle CellTags CellularAutomaton CensoredDistribution Censoring Center CenterDot CentralMoment CentralMomentGeneratingFunction CForm ChampernowneNumber ChanVeseBinarize Character CharacterEncoding CharacterEncodingsPath CharacteristicFunction CharacteristicPolynomial CharacterRange Characters ChartBaseStyle ChartElementData ChartElementDataFunction ChartElementFunction ChartElements ChartLabels ChartLayout ChartLegends ChartStyle Chebyshev1FilterModel Chebyshev2FilterModel ChebyshevDistance ChebyshevT ChebyshevU Check CheckAbort CheckAll Checkbox CheckboxBar CheckboxBox CheckboxBoxOptions ChemicalData ChessboardDistance ChiDistribution ChineseRemainder ChiSquareDistribution ChoiceButtons ChoiceDialog CholeskyDecomposition Chop Circle CircleBox CircleDot CircleMinus CirclePlus CircleTimes CirculantGraph CityData Clear ClearAll ClearAttributes ClearSystemCache ClebschGordan ClickPane Clip ClipboardNotebook ClipFill ClippingStyle ClipPlanes ClipRange Clock ClockGauge ClockwiseContourIntegral Close Closed CloseKernels ClosenessCentrality Closing ClosingAutoSave ClosingEvent ClusteringComponents CMYKColor Coarse Coefficient CoefficientArrays CoefficientDomain CoefficientList CoefficientRules CoifletWavelet Collect Colon ColonForm ColorCombine ColorConvert ColorData ColorDataFunction ColorFunction ColorFunctionScaling Colorize ColorNegate ColorOutput ColorProfileData ColorQuantize ColorReplace ColorRules ColorSelectorSettings ColorSeparate ColorSetter ColorSetterBox ColorSetterBoxOptions ColorSlider ColorSpace Column ColumnAlignments ColumnBackgrounds ColumnForm ColumnLines ColumnsEqual ColumnSpacings ColumnWidths CommonDefaultFormatTypes Commonest CommonestFilter CommonUnits CommunityBoundaryStyle CommunityGraphPlot CommunityLabels CommunityRegionStyle CompatibleUnitQ CompilationOptions CompilationTarget Compile Compiled CompiledFunction Complement CompleteGraph CompleteGraphQ CompleteKaryTree CompletionsListPacket Complex Complexes ComplexExpand ComplexInfinity ComplexityFunction ComponentMeasurements ComponentwiseContextMenu Compose ComposeList ComposeSeries Composition CompoundExpression CompoundPoissonDistribution CompoundPoissonProcess CompoundRenewalProcess Compress CompressedData Condition ConditionalExpression Conditioned Cone ConeBox ConfidenceLevel ConfidenceRange ConfidenceTransform ConfigurationPath Congruent Conjugate ConjugateTranspose Conjunction Connect ConnectedComponents ConnectedGraphQ ConnesWindow ConoverTest ConsoleMessage ConsoleMessagePacket ConsolePrint Constant ConstantArray Constants ConstrainedMax ConstrainedMin ContentPadding ContentsBoundingBox ContentSelectable ContentSize Context ContextMenu Contexts ContextToFilename ContextToFileName Continuation Continue ContinuedFraction ContinuedFractionK ContinuousAction ContinuousMarkovProcess ContinuousTimeModelQ ContinuousWaveletData ContinuousWaveletTransform ContourDetect ContourGraphics ContourIntegral ContourLabels ContourLines ContourPlot ContourPlot3D Contours ContourShading ContourSmoothing ContourStyle ContraharmonicMean Control ControlActive ControlAlignment ControllabilityGramian ControllabilityMatrix ControllableDecomposition ControllableModelQ ControllerDuration ControllerInformation ControllerInformationData ControllerLinking ControllerManipulate ControllerMethod ControllerPath ControllerState ControlPlacement ControlsRendering ControlType Convergents ConversionOptions ConversionRules ConvertToBitmapPacket ConvertToPostScript ConvertToPostScriptPacket Convolve ConwayGroupCo1 ConwayGroupCo2 ConwayGroupCo3 CoordinateChartData CoordinatesToolOptions CoordinateTransform CoordinateTransformData CoprimeQ Coproduct CopulaDistribution Copyable CopyDirectory CopyFile CopyTag CopyToClipboard CornerFilter CornerNeighbors Correlation CorrelationDistance CorrelationFunction CorrelationTest Cos Cosh CoshIntegral CosineDistance CosineWindow CosIntegral Cot Coth Count CounterAssignments CounterBox CounterBoxOptions CounterClockwiseContourIntegral CounterEvaluator CounterFunction CounterIncrements CounterStyle CounterStyleMenuListing CountRoots CountryData Covariance CovarianceEstimatorFunction CovarianceFunction CoxianDistribution CoxIngersollRossProcess CoxModel CoxModelFit CramerVonMisesTest CreateArchive CreateDialog CreateDirectory CreateDocument CreateIntermediateDirectories CreatePalette CreatePalettePacket CreateScheduledTask CreateTemporary CreateWindow CriticalityFailureImportance CriticalitySuccessImportance CriticalSection Cross CrossingDetect CrossMatrix Csc Csch CubeRoot Cubics Cuboid CuboidBox Cumulant CumulantGeneratingFunction Cup CupCap Curl CurlyDoubleQuote CurlyQuote CurrentImage CurrentlySpeakingPacket CurrentValue CurvatureFlowFilter CurveClosed Cyan CycleGraph CycleIndexPolynomial Cycles CyclicGroup Cyclotomic Cylinder CylinderBox CylindricalDecomposition D DagumDistribution DamerauLevenshteinDistance DampingFactor Darker Dashed Dashing DataCompression DataDistribution DataRange DataReversed Date DateDelimiters DateDifference DateFunction DateList DateListLogPlot DateListPlot DatePattern DatePlus DateRange DateString DateTicksFormat DaubechiesWavelet DavisDistribution DawsonF DayCount DayCountConvention DayMatchQ DayName DayPlus DayRange DayRound DeBruijnGraph Debug DebugTag Decimal DeclareKnownSymbols DeclarePackage Decompose Decrement DedekindEta Default DefaultAxesStyle DefaultBaseStyle DefaultBoxStyle DefaultButton DefaultColor DefaultControlPlacement DefaultDuplicateCellStyle DefaultDuration DefaultElement DefaultFaceGridsStyle DefaultFieldHintStyle DefaultFont DefaultFontProperties DefaultFormatType DefaultFormatTypeForStyle DefaultFrameStyle DefaultFrameTicksStyle DefaultGridLinesStyle DefaultInlineFormatType DefaultInputFormatType DefaultLabelStyle DefaultMenuStyle DefaultNaturalLanguage DefaultNewCellStyle DefaultNewInlineCellStyle DefaultNotebook DefaultOptions DefaultOutputFormatType DefaultStyle DefaultStyleDefinitions DefaultTextFormatType DefaultTextInlineFormatType DefaultTicksStyle DefaultTooltipStyle DefaultValues Defer DefineExternal DefineInputStreamMethod DefineOutputStreamMethod Definition Degree DegreeCentrality DegreeGraphDistribution DegreeLexicographic DegreeReverseLexicographic Deinitialization Del Deletable Delete DeleteBorderComponents DeleteCases DeleteContents DeleteDirectory DeleteDuplicates DeleteFile DeleteSmallComponents DeleteWithContents DeletionWarning Delimiter DelimiterFlashTime DelimiterMatching Delimiters Denominator DensityGraphics DensityHistogram DensityPlot DependentVariables Deploy Deployed Depth DepthFirstScan Derivative DerivativeFilter DescriptorStateSpace DesignMatrix Det DGaussianWavelet DiacriticalPositioning Diagonal DiagonalMatrix Dialog DialogIndent DialogInput DialogLevel DialogNotebook DialogProlog DialogReturn DialogSymbols Diamond DiamondMatrix DiceDissimilarity DictionaryLookup DifferenceDelta DifferenceOrder DifferenceRoot DifferenceRootReduce Differences DifferentialD DifferentialRoot DifferentialRootReduce DifferentiatorFilter DigitBlock DigitBlockMinimum DigitCharacter DigitCount DigitQ DihedralGroup Dilation Dimensions DiracComb DiracDelta DirectedEdge DirectedEdges DirectedGraph DirectedGraphQ DirectedInfinity Direction Directive Directory DirectoryName DirectoryQ DirectoryStack DirichletCharacter DirichletConvolve DirichletDistribution DirichletL DirichletTransform DirichletWindow DisableConsolePrintPacket DiscreteChirpZTransform DiscreteConvolve DiscreteDelta DiscreteHadamardTransform DiscreteIndicator DiscreteLQEstimatorGains DiscreteLQRegulatorGains DiscreteLyapunovSolve DiscreteMarkovProcess DiscretePlot DiscretePlot3D DiscreteRatio DiscreteRiccatiSolve DiscreteShift DiscreteTimeModelQ DiscreteUniformDistribution DiscreteVariables DiscreteWaveletData DiscreteWaveletPacketTransform DiscreteWaveletTransform Discriminant Disjunction Disk DiskBox DiskMatrix Dispatch DispersionEstimatorFunction Display DisplayAllSteps DisplayEndPacket DisplayFlushImagePacket DisplayForm DisplayFunction DisplayPacket DisplayRules DisplaySetSizePacket DisplayString DisplayTemporary DisplayWith DisplayWithRef DisplayWithVariable DistanceFunction DistanceTransform Distribute Distributed DistributedContexts DistributeDefinitions DistributionChart DistributionDomain DistributionFitTest DistributionParameterAssumptions DistributionParameterQ Dithering Div Divergence Divide DivideBy Dividers Divisible Divisors DivisorSigma DivisorSum DMSList DMSString Do DockedCells DocumentNotebook DominantColors DOSTextFormat Dot DotDashed DotEqual Dotted DoubleBracketingBar DoubleContourIntegral DoubleDownArrow DoubleLeftArrow DoubleLeftRightArrow DoubleLeftTee DoubleLongLeftArrow DoubleLongLeftRightArrow DoubleLongRightArrow DoubleRightArrow DoubleRightTee DoubleUpArrow DoubleUpDownArrow DoubleVerticalBar DoublyInfinite Down DownArrow DownArrowBar DownArrowUpArrow DownLeftRightVector DownLeftTeeVector DownLeftVector DownLeftVectorBar DownRightTeeVector DownRightVector DownRightVectorBar Downsample DownTee DownTeeArrow DownValues DragAndDrop DrawEdges DrawFrontFaces DrawHighlighted Drop DSolve Dt DualLinearProgramming DualSystemsModel DumpGet DumpSave DuplicateFreeQ Dynamic DynamicBox DynamicBoxOptions DynamicEvaluationTimeout DynamicLocation DynamicModule DynamicModuleBox DynamicModuleBoxOptions DynamicModuleParent DynamicModuleValues DynamicName DynamicNamespace DynamicReference DynamicSetting DynamicUpdating DynamicWrapper DynamicWrapperBox DynamicWrapperBoxOptions E EccentricityCentrality EdgeAdd EdgeBetweennessCentrality EdgeCapacity EdgeCapForm EdgeColor EdgeConnectivity EdgeCost EdgeCount EdgeCoverQ EdgeDashing EdgeDelete EdgeDetect EdgeForm EdgeIndex EdgeJoinForm EdgeLabeling EdgeLabels EdgeLabelStyle EdgeList EdgeOpacity EdgeQ EdgeRenderingFunction EdgeRules EdgeShapeFunction EdgeStyle EdgeThickness EdgeWeight Editable EditButtonSettings EditCellTagsSettings EditDistance EffectiveInterest Eigensystem Eigenvalues EigenvectorCentrality Eigenvectors Element ElementData Eliminate EliminationOrder EllipticE EllipticExp EllipticExpPrime EllipticF EllipticFilterModel EllipticK EllipticLog EllipticNomeQ EllipticPi EllipticReducedHalfPeriods EllipticTheta EllipticThetaPrime EmitSound EmphasizeSyntaxErrors EmpiricalDistribution Empty EmptyGraphQ EnableConsolePrintPacket Enabled Encode End EndAdd EndDialogPacket EndFrontEndInteractionPacket EndOfFile EndOfLine EndOfString EndPackage EngineeringForm Enter EnterExpressionPacket EnterTextPacket Entropy EntropyFilter Environment Epilog Equal EqualColumns EqualRows EqualTilde EquatedTo Equilibrium EquirippleFilterKernel Equivalent Erf Erfc Erfi ErlangB ErlangC ErlangDistribution Erosion ErrorBox ErrorBoxOptions ErrorNorm ErrorPacket ErrorsDialogSettings EstimatedDistribution EstimatedProcess EstimatorGains EstimatorRegulator EuclideanDistance EulerE EulerGamma EulerianGraphQ EulerPhi Evaluatable Evaluate Evaluated EvaluatePacket EvaluationCell EvaluationCompletionAction EvaluationElements EvaluationMode EvaluationMonitor EvaluationNotebook EvaluationObject EvaluationOrder Evaluator EvaluatorNames EvenQ EventData EventEvaluator EventHandler EventHandlerTag EventLabels ExactBlackmanWindow ExactNumberQ ExactRootIsolation ExampleData Except ExcludedForms ExcludePods Exclusions ExclusionsStyle Exists Exit ExitDialog Exp Expand ExpandAll ExpandDenominator ExpandFileName ExpandNumerator Expectation ExpectationE ExpectedValue ExpGammaDistribution ExpIntegralE ExpIntegralEi Exponent ExponentFunction ExponentialDistribution ExponentialFamily ExponentialGeneratingFunction ExponentialMovingAverage ExponentialPowerDistribution ExponentPosition ExponentStep Export ExportAutoReplacements ExportPacket ExportString Expression ExpressionCell ExpressionPacket ExpToTrig ExtendedGCD Extension ExtentElementFunction ExtentMarkers ExtentSize ExternalCall ExternalDataCharacterEncoding Extract ExtractArchive ExtremeValueDistribution FaceForm FaceGrids FaceGridsStyle Factor FactorComplete Factorial Factorial2 FactorialMoment FactorialMomentGeneratingFunction FactorialPower FactorInteger FactorList FactorSquareFree FactorSquareFreeList FactorTerms FactorTermsList Fail FailureDistribution False FARIMAProcess FEDisableConsolePrintPacket FeedbackSector FeedbackSectorStyle FeedbackType FEEnableConsolePrintPacket Fibonacci FieldHint FieldHintStyle FieldMasked FieldSize File FileBaseName FileByteCount FileDate FileExistsQ FileExtension FileFormat FileHash FileInformation FileName FileNameDepth FileNameDialogSettings FileNameDrop FileNameJoin FileNames FileNameSetter FileNameSplit FileNameTake FilePrint FileType FilledCurve FilledCurveBox Filling FillingStyle FillingTransform FilterRules FinancialBond FinancialData FinancialDerivative FinancialIndicator Find FindArgMax FindArgMin FindClique FindClusters FindCurvePath FindDistributionParameters FindDivisions FindEdgeCover FindEdgeCut FindEulerianCycle FindFaces FindFile FindFit FindGeneratingFunction FindGeoLocation FindGeometricTransform FindGraphCommunities FindGraphIsomorphism FindGraphPartition FindHamiltonianCycle FindIndependentEdgeSet FindIndependentVertexSet FindInstance FindIntegerNullVector FindKClan FindKClique FindKClub FindKPlex FindLibrary FindLinearRecurrence FindList FindMaximum FindMaximumFlow FindMaxValue FindMinimum FindMinimumCostFlow FindMinimumCut FindMinValue FindPermutation FindPostmanTour FindProcessParameters FindRoot FindSequenceFunction FindSettings FindShortestPath FindShortestTour FindThreshold FindVertexCover FindVertexCut Fine FinishDynamic FiniteAbelianGroupCount FiniteGroupCount FiniteGroupData First FirstPassageTimeDistribution FischerGroupFi22 FischerGroupFi23 FischerGroupFi24Prime FisherHypergeometricDistribution FisherRatioTest FisherZDistribution Fit FitAll FittedModel FixedPoint FixedPointList FlashSelection Flat Flatten FlattenAt FlatTopWindow FlipView Floor FlushPrintOutputPacket Fold FoldList Font FontColor FontFamily FontForm FontName FontOpacity FontPostScriptName FontProperties FontReencoding FontSize FontSlant FontSubstitutions FontTracking FontVariations FontWeight For ForAll Format FormatRules FormatType FormatTypeAutoConvert FormatValues FormBox FormBoxOptions FortranForm Forward ForwardBackward Fourier FourierCoefficient FourierCosCoefficient FourierCosSeries FourierCosTransform FourierDCT FourierDCTFilter FourierDCTMatrix FourierDST FourierDSTMatrix FourierMatrix FourierParameters FourierSequenceTransform FourierSeries FourierSinCoefficient FourierSinSeries FourierSinTransform FourierTransform FourierTrigSeries FractionalBrownianMotionProcess FractionalPart FractionBox FractionBoxOptions FractionLine Frame FrameBox FrameBoxOptions Framed FrameInset FrameLabel Frameless FrameMargins FrameStyle FrameTicks FrameTicksStyle FRatioDistribution FrechetDistribution FreeQ FrequencySamplingFilterKernel FresnelC FresnelS Friday FrobeniusNumber FrobeniusSolve FromCharacterCode FromCoefficientRules FromContinuedFraction FromDate FromDigits FromDMS Front FrontEndDynamicExpression FrontEndEventActions FrontEndExecute FrontEndObject FrontEndResource FrontEndResourceString FrontEndStackSize FrontEndToken FrontEndTokenExecute FrontEndValueCache FrontEndVersion FrontFaceColor FrontFaceOpacity Full FullAxes FullDefinition FullForm FullGraphics FullOptions FullSimplify Function FunctionExpand FunctionInterpolation FunctionSpace FussellVeselyImportance GaborFilter GaborMatrix GaborWavelet GainMargins GainPhaseMargins Gamma GammaDistribution GammaRegularized GapPenalty Gather GatherBy GaugeFaceElementFunction GaugeFaceStyle GaugeFrameElementFunction GaugeFrameSize GaugeFrameStyle GaugeLabels GaugeMarkers GaugeStyle GaussianFilter GaussianIntegers GaussianMatrix GaussianWindow GCD GegenbauerC General GeneralizedLinearModelFit GenerateConditions GeneratedCell GeneratedParameters GeneratingFunction Generic GenericCylindricalDecomposition GenomeData GenomeLookup GeodesicClosing GeodesicDilation GeodesicErosion GeodesicOpening GeoDestination GeodesyData GeoDirection GeoDistance GeoGridPosition GeometricBrownianMotionProcess GeometricDistribution GeometricMean GeometricMeanFilter GeometricTransformation GeometricTransformation3DBox GeometricTransformation3DBoxOptions GeometricTransformationBox GeometricTransformationBoxOptions GeoPosition GeoPositionENU GeoPositionXYZ GeoProjectionData GestureHandler GestureHandlerTag Get GetBoundingBoxSizePacket GetContext GetEnvironment GetFileName GetFrontEndOptionsDataPacket GetLinebreakInformationPacket GetMenusPacket GetPageBreakInformationPacket Glaisher GlobalClusteringCoefficient GlobalPreferences GlobalSession Glow GoldenRatio GompertzMakehamDistribution GoodmanKruskalGamma GoodmanKruskalGammaTest Goto Grad Gradient GradientFilter GradientOrientationFilter Graph GraphAssortativity GraphCenter GraphComplement GraphData GraphDensity GraphDiameter GraphDifference GraphDisjointUnion GraphDistance GraphDistanceMatrix GraphElementData GraphEmbedding GraphHighlight GraphHighlightStyle GraphHub Graphics Graphics3D Graphics3DBox Graphics3DBoxOptions GraphicsArray GraphicsBaseline GraphicsBox GraphicsBoxOptions GraphicsColor GraphicsColumn GraphicsComplex GraphicsComplex3DBox GraphicsComplex3DBoxOptions GraphicsComplexBox GraphicsComplexBoxOptions GraphicsContents GraphicsData GraphicsGrid GraphicsGridBox GraphicsGroup GraphicsGroup3DBox GraphicsGroup3DBoxOptions GraphicsGroupBox GraphicsGroupBoxOptions GraphicsGrouping GraphicsHighlightColor GraphicsRow GraphicsSpacing GraphicsStyle GraphIntersection GraphLayout GraphLinkEfficiency GraphPeriphery GraphPlot GraphPlot3D GraphPower GraphPropertyDistribution GraphQ GraphRadius GraphReciprocity GraphRoot GraphStyle GraphUnion Gray GrayLevel GreatCircleDistance Greater GreaterEqual GreaterEqualLess GreaterFullEqual GreaterGreater GreaterLess GreaterSlantEqual GreaterTilde Green Grid GridBaseline GridBox GridBoxAlignment GridBoxBackground GridBoxDividers GridBoxFrame GridBoxItemSize GridBoxItemStyle GridBoxOptions GridBoxSpacings GridCreationSettings GridDefaultElement GridElementStyleOptions GridFrame GridFrameMargins GridGraph GridLines GridLinesStyle GroebnerBasis GroupActionBase GroupCentralizer GroupElementFromWord GroupElementPosition GroupElementQ GroupElements GroupElementToWord GroupGenerators GroupMultiplicationTable GroupOrbits GroupOrder GroupPageBreakWithin GroupSetwiseStabilizer GroupStabilizer GroupStabilizerChain Gudermannian GumbelDistribution HaarWavelet HadamardMatrix HalfNormalDistribution HamiltonianGraphQ HammingDistance HammingWindow HankelH1 HankelH2 HankelMatrix HannPoissonWindow HannWindow HaradaNortonGroupHN HararyGraph HarmonicMean HarmonicMeanFilter HarmonicNumber Hash HashTable Haversine HazardFunction Head HeadCompose Heads HeavisideLambda HeavisidePi HeavisideTheta HeldGroupHe HeldPart HelpBrowserLookup HelpBrowserNotebook HelpBrowserSettings HermiteDecomposition HermiteH HermitianMatrixQ HessenbergDecomposition Hessian HexadecimalCharacter Hexahedron HexahedronBox HexahedronBoxOptions HiddenSurface HighlightGraph HighlightImage HighpassFilter HigmanSimsGroupHS HilbertFilter HilbertMatrix Histogram Histogram3D HistogramDistribution HistogramList HistogramTransform HistogramTransformInterpolation HitMissTransform HITSCentrality HodgeDual HoeffdingD HoeffdingDTest Hold HoldAll HoldAllComplete HoldComplete HoldFirst HoldForm HoldPattern HoldRest HolidayCalendar HomeDirectory HomePage Horizontal HorizontalForm HorizontalGauge HorizontalScrollPosition HornerForm HotellingTSquareDistribution HoytDistribution HTMLSave Hue HumpDownHump HumpEqual HurwitzLerchPhi HurwitzZeta HyperbolicDistribution HypercubeGraph HyperexponentialDistribution Hyperfactorial Hypergeometric0F1 Hypergeometric0F1Regularized Hypergeometric1F1 Hypergeometric1F1Regularized Hypergeometric2F1 Hypergeometric2F1Regularized HypergeometricDistribution HypergeometricPFQ HypergeometricPFQRegularized HypergeometricU Hyperlink HyperlinkCreationSettings Hyphenation HyphenationOptions HypoexponentialDistribution HypothesisTestData I Identity IdentityMatrix If IgnoreCase Im Image Image3D Image3DSlices ImageAccumulate ImageAdd ImageAdjust ImageAlign ImageApply ImageAspectRatio ImageAssemble ImageCache ImageCacheValid ImageCapture ImageChannels ImageClip ImageColorSpace ImageCompose ImageConvolve ImageCooccurrence ImageCorners ImageCorrelate ImageCorrespondingPoints ImageCrop ImageData ImageDataPacket ImageDeconvolve ImageDemosaic ImageDifference ImageDimensions ImageDistance ImageEffect ImageFeatureTrack ImageFileApply ImageFileFilter ImageFileScan ImageFilter ImageForestingComponents ImageForwardTransformation ImageHistogram ImageKeypoints ImageLevels ImageLines ImageMargins ImageMarkers ImageMeasurements ImageMultiply ImageOffset ImagePad ImagePadding ImagePartition ImagePeriodogram ImagePerspectiveTransformation ImageQ ImageRangeCache ImageReflect ImageRegion ImageResize ImageResolution ImageRotate ImageRotated ImageScaled ImageScan ImageSize ImageSizeAction ImageSizeCache ImageSizeMultipliers ImageSizeRaw ImageSubtract ImageTake ImageTransformation ImageTrim ImageType ImageValue ImageValuePositions Implies Import ImportAutoReplacements ImportString ImprovementImportance In IncidenceGraph IncidenceList IncidenceMatrix IncludeConstantBasis IncludeFileExtension IncludePods IncludeSingularTerm Increment Indent IndentingNewlineSpacings IndentMaxFraction IndependenceTest IndependentEdgeSetQ IndependentUnit IndependentVertexSetQ Indeterminate IndexCreationOptions Indexed IndexGraph IndexTag Inequality InexactNumberQ InexactNumbers Infinity Infix Information Inherited InheritScope Initialization InitializationCell InitializationCellEvaluation InitializationCellWarning InlineCounterAssignments InlineCounterIncrements InlineRules Inner Inpaint Input InputAliases InputAssumptions InputAutoReplacements InputField InputFieldBox InputFieldBoxOptions InputForm InputGrouping InputNamePacket InputNotebook InputPacket InputSettings InputStream InputString InputStringPacket InputToBoxFormPacket Insert InsertionPointObject InsertResults Inset Inset3DBox Inset3DBoxOptions InsetBox InsetBoxOptions Install InstallService InString Integer IntegerDigits IntegerExponent IntegerLength IntegerPart IntegerPartitions IntegerQ Integers IntegerString Integral Integrate Interactive InteractiveTradingChart Interlaced Interleaving InternallyBalancedDecomposition InterpolatingFunction InterpolatingPolynomial Interpolation InterpolationOrder InterpolationPoints InterpolationPrecision Interpretation InterpretationBox InterpretationBoxOptions InterpretationFunction InterpretTemplate InterquartileRange Interrupt InterruptSettings Intersection Interval IntervalIntersection IntervalMemberQ IntervalUnion Inverse InverseBetaRegularized InverseCDF InverseChiSquareDistribution InverseContinuousWaveletTransform InverseDistanceTransform InverseEllipticNomeQ InverseErf InverseErfc InverseFourier InverseFourierCosTransform InverseFourierSequenceTransform InverseFourierSinTransform InverseFourierTransform InverseFunction InverseFunctions InverseGammaDistribution InverseGammaRegularized InverseGaussianDistribution InverseGudermannian InverseHaversine InverseJacobiCD InverseJacobiCN InverseJacobiCS InverseJacobiDC InverseJacobiDN InverseJacobiDS InverseJacobiNC InverseJacobiND InverseJacobiNS InverseJacobiSC InverseJacobiSD InverseJacobiSN InverseLaplaceTransform InversePermutation InverseRadon InverseSeries InverseSurvivalFunction InverseWaveletTransform InverseWeierstrassP InverseZTransform Invisible InvisibleApplication InvisibleTimes IrreduciblePolynomialQ IsolatingInterval IsomorphicGraphQ IsotopeData Italic Item ItemBox ItemBoxOptions ItemSize ItemStyle ItoProcess JaccardDissimilarity JacobiAmplitude Jacobian JacobiCD JacobiCN JacobiCS JacobiDC JacobiDN JacobiDS JacobiNC JacobiND JacobiNS JacobiP JacobiSC JacobiSD JacobiSN JacobiSymbol JacobiZeta JankoGroupJ1 JankoGroupJ2 JankoGroupJ3 JankoGroupJ4 JarqueBeraALMTest JohnsonDistribution Join Joined JoinedCurve JoinedCurveBox JoinForm JordanDecomposition JordanModelDecomposition K KagiChart KaiserBesselWindow KaiserWindow KalmanEstimator KalmanFilter KarhunenLoeveDecomposition KaryTree KatzCentrality KCoreComponents KDistribution KelvinBei KelvinBer KelvinKei KelvinKer KendallTau KendallTauTest KernelExecute KernelMixtureDistribution KernelObject Kernels Ket Khinchin KirchhoffGraph KirchhoffMatrix KleinInvariantJ KnightTourGraph KnotData KnownUnitQ KolmogorovSmirnovTest KroneckerDelta KroneckerModelDecomposition KroneckerProduct KroneckerSymbol KuiperTest KumaraswamyDistribution Kurtosis KuwaharaFilter Label Labeled LabeledSlider LabelingFunction LabelStyle LaguerreL LambdaComponents LambertW LanczosWindow LandauDistribution Language LanguageCategory LaplaceDistribution LaplaceTransform Laplacian LaplacianFilter LaplacianGaussianFilter Large Larger Last Latitude LatitudeLongitude LatticeData LatticeReduce Launch LaunchKernels LayeredGraphPlot LayerSizeFunction LayoutInformation LCM LeafCount LeapYearQ LeastSquares LeastSquaresFilterKernel Left LeftArrow LeftArrowBar LeftArrowRightArrow LeftDownTeeVector LeftDownVector LeftDownVectorBar LeftRightArrow LeftRightVector LeftTee LeftTeeArrow LeftTeeVector LeftTriangle LeftTriangleBar LeftTriangleEqual LeftUpDownVector LeftUpTeeVector LeftUpVector LeftUpVectorBar LeftVector LeftVectorBar LegendAppearance Legended LegendFunction LegendLabel LegendLayout LegendMargins LegendMarkers LegendMarkerSize LegendreP LegendreQ LegendreType Length LengthWhile LerchPhi Less LessEqual LessEqualGreater LessFullEqual LessGreater LessLess LessSlantEqual LessTilde LetterCharacter LetterQ Level LeveneTest LeviCivitaTensor LevyDistribution Lexicographic LibraryFunction LibraryFunctionError LibraryFunctionInformation LibraryFunctionLoad LibraryFunctionUnload LibraryLoad LibraryUnload LicenseID LiftingFilterData LiftingWaveletTransform LightBlue LightBrown LightCyan Lighter LightGray LightGreen Lighting LightingAngle LightMagenta LightOrange LightPink LightPurple LightRed LightSources LightYellow Likelihood Limit LimitsPositioning LimitsPositioningTokens LindleyDistribution Line Line3DBox LinearFilter LinearFractionalTransform LinearModelFit LinearOffsetFunction LinearProgramming LinearRecurrence LinearSolve LinearSolveFunction LineBox LineBreak LinebreakAdjustments LineBreakChart LineBreakWithin LineColor LineForm LineGraph LineIndent LineIndentMaxFraction LineIntegralConvolutionPlot LineIntegralConvolutionScale LineLegend LineOpacity LineSpacing LineWrapParts LinkActivate LinkClose LinkConnect LinkConnectedQ LinkCreate LinkError LinkFlush LinkFunction LinkHost LinkInterrupt LinkLaunch LinkMode LinkObject LinkOpen LinkOptions LinkPatterns LinkProtocol LinkRead LinkReadHeld LinkReadyQ Links LinkWrite LinkWriteHeld LiouvilleLambda List Listable ListAnimate ListContourPlot ListContourPlot3D ListConvolve ListCorrelate ListCurvePathPlot ListDeconvolve ListDensityPlot Listen ListFourierSequenceTransform ListInterpolation ListLineIntegralConvolutionPlot ListLinePlot ListLogLinearPlot ListLogLogPlot ListLogPlot ListPicker ListPickerBox ListPickerBoxBackground ListPickerBoxOptions ListPlay ListPlot ListPlot3D ListPointPlot3D ListPolarPlot ListQ ListStreamDensityPlot ListStreamPlot ListSurfacePlot3D ListVectorDensityPlot ListVectorPlot ListVectorPlot3D ListZTransform Literal LiteralSearch LocalClusteringCoefficient LocalizeVariables LocationEquivalenceTest LocationTest Locator LocatorAutoCreate LocatorBox LocatorBoxOptions LocatorCentering LocatorPane LocatorPaneBox LocatorPaneBoxOptions LocatorRegion Locked Log Log10 Log2 LogBarnesG LogGamma LogGammaDistribution LogicalExpand LogIntegral LogisticDistribution LogitModelFit LogLikelihood LogLinearPlot LogLogisticDistribution LogLogPlot LogMultinormalDistribution LogNormalDistribution LogPlot LogRankTest LogSeriesDistribution LongEqual Longest LongestAscendingSequence LongestCommonSequence LongestCommonSequencePositions LongestCommonSubsequence LongestCommonSubsequencePositions LongestMatch LongForm Longitude LongLeftArrow LongLeftRightArrow LongRightArrow Loopback LoopFreeGraphQ LowerCaseQ LowerLeftArrow LowerRightArrow LowerTriangularize LowpassFilter LQEstimatorGains LQGRegulator LQOutputRegulatorGains LQRegulatorGains LUBackSubstitution LucasL LuccioSamiComponents LUDecomposition LyapunovSolve LyonsGroupLy MachineID MachineName MachineNumberQ MachinePrecision MacintoshSystemPageSetup Magenta Magnification Magnify MainSolve MaintainDynamicCaches Majority MakeBoxes MakeExpression MakeRules MangoldtLambda ManhattanDistance Manipulate Manipulator MannWhitneyTest MantissaExponent Manual Map MapAll MapAt MapIndexed MAProcess MapThread MarcumQ MardiaCombinedTest MardiaKurtosisTest MardiaSkewnessTest MarginalDistribution MarkovProcessProperties Masking MatchingDissimilarity MatchLocalNameQ MatchLocalNames MatchQ Material MathematicaNotation MathieuC MathieuCharacteristicA MathieuCharacteristicB MathieuCharacteristicExponent MathieuCPrime MathieuGroupM11 MathieuGroupM12 MathieuGroupM22 MathieuGroupM23 MathieuGroupM24 MathieuS MathieuSPrime MathMLForm MathMLText Matrices MatrixExp MatrixForm MatrixFunction MatrixLog MatrixPlot MatrixPower MatrixQ MatrixRank Max MaxBend MaxDetect MaxExtraBandwidths MaxExtraConditions MaxFeatures MaxFilter Maximize MaxIterations MaxMemoryUsed MaxMixtureKernels MaxPlotPoints MaxPoints MaxRecursion MaxStableDistribution MaxStepFraction MaxSteps MaxStepSize MaxValue MaxwellDistribution McLaughlinGroupMcL Mean MeanClusteringCoefficient MeanDegreeConnectivity MeanDeviation MeanFilter MeanGraphDistance MeanNeighborDegree MeanShift MeanShiftFilter Median MedianDeviation MedianFilter Medium MeijerG MeixnerDistribution MemberQ MemoryConstrained MemoryInUse Menu MenuAppearance MenuCommandKey MenuEvaluator MenuItem MenuPacket MenuSortingValue MenuStyle MenuView MergeDifferences Mesh MeshFunctions MeshRange MeshShading MeshStyle Message MessageDialog MessageList MessageName MessageOptions MessagePacket Messages MessagesNotebook MetaCharacters MetaInformation Method MethodOptions MexicanHatWavelet MeyerWavelet Min MinDetect MinFilter MinimalPolynomial MinimalStateSpaceModel Minimize Minors MinRecursion MinSize MinStableDistribution Minus MinusPlus MinValue Missing MissingDataMethod MittagLefflerE MixedRadix MixedRadixQuantity MixtureDistribution Mod Modal Mode Modular ModularLambda Module Modulus MoebiusMu Moment Momentary MomentConvert MomentEvaluate MomentGeneratingFunction Monday Monitor MonomialList MonomialOrder MonsterGroupM MorletWavelet MorphologicalBinarize MorphologicalBranchPoints MorphologicalComponents MorphologicalEulerNumber MorphologicalGraph MorphologicalPerimeter MorphologicalTransform Most MouseAnnotation MouseAppearance MouseAppearanceTag MouseButtons Mouseover MousePointerNote MousePosition MovingAverage MovingMedian MoyalDistribution MultiedgeStyle MultilaunchWarning MultiLetterItalics MultiLetterStyle MultilineFunction Multinomial MultinomialDistribution MultinormalDistribution MultiplicativeOrder Multiplicity Multiselection MultivariateHypergeometricDistribution MultivariatePoissonDistribution MultivariateTDistribution N NakagamiDistribution NameQ Names NamespaceBox Nand NArgMax NArgMin NBernoulliB NCache NDSolve NDSolveValue Nearest NearestFunction NeedCurrentFrontEndPackagePacket NeedCurrentFrontEndSymbolsPacket NeedlemanWunschSimilarity Needs Negative NegativeBinomialDistribution NegativeMultinomialDistribution NeighborhoodGraph Nest NestedGreaterGreater NestedLessLess NestedScriptRules NestList NestWhile NestWhileList NevilleThetaC NevilleThetaD NevilleThetaN NevilleThetaS NewPrimitiveStyle NExpectation Next NextPrime NHoldAll NHoldFirst NHoldRest NicholsGridLines NicholsPlot NIntegrate NMaximize NMaxValue NMinimize NMinValue NominalVariables NonAssociative NoncentralBetaDistribution NoncentralChiSquareDistribution NoncentralFRatioDistribution NoncentralStudentTDistribution NonCommutativeMultiply NonConstants None NonlinearModelFit NonlocalMeansFilter NonNegative NonPositive Nor NorlundB Norm Normal NormalDistribution NormalGrouping Normalize NormalizedSquaredEuclideanDistance NormalsFunction NormFunction Not NotCongruent NotCupCap NotDoubleVerticalBar Notebook NotebookApply NotebookAutoSave NotebookClose NotebookConvertSettings NotebookCreate NotebookCreateReturnObject NotebookDefault NotebookDelete NotebookDirectory NotebookDynamicExpression NotebookEvaluate NotebookEventActions NotebookFileName NotebookFind NotebookFindReturnObject NotebookGet NotebookGetLayoutInformationPacket NotebookGetMisspellingsPacket NotebookInformation NotebookInterfaceObject NotebookLocate NotebookObject NotebookOpen NotebookOpenReturnObject NotebookPath NotebookPrint NotebookPut NotebookPutReturnObject NotebookRead NotebookResetGeneratedCells Notebooks NotebookSave NotebookSaveAs NotebookSelection NotebookSetupLayoutInformationPacket NotebooksMenu NotebookWrite NotElement NotEqualTilde NotExists NotGreater NotGreaterEqual NotGreaterFullEqual NotGreaterGreater NotGreaterLess NotGreaterSlantEqual NotGreaterTilde NotHumpDownHump NotHumpEqual NotLeftTriangle NotLeftTriangleBar NotLeftTriangleEqual NotLess NotLessEqual NotLessFullEqual NotLessGreater NotLessLess NotLessSlantEqual NotLessTilde NotNestedGreaterGreater NotNestedLessLess NotPrecedes NotPrecedesEqual NotPrecedesSlantEqual NotPrecedesTilde NotReverseElement NotRightTriangle NotRightTriangleBar NotRightTriangleEqual NotSquareSubset NotSquareSubsetEqual NotSquareSuperset NotSquareSupersetEqual NotSubset NotSubsetEqual NotSucceeds NotSucceedsEqual NotSucceedsSlantEqual NotSucceedsTilde NotSuperset NotSupersetEqual NotTilde NotTildeEqual NotTildeFullEqual NotTildeTilde NotVerticalBar NProbability NProduct NProductFactors NRoots NSolve NSum NSumTerms Null NullRecords NullSpace NullWords Number NumberFieldClassNumber NumberFieldDiscriminant NumberFieldFundamentalUnits NumberFieldIntegralBasis NumberFieldNormRepresentatives NumberFieldRegulator NumberFieldRootsOfUnity NumberFieldSignature NumberForm NumberFormat NumberMarks NumberMultiplier NumberPadding NumberPoint NumberQ NumberSeparator NumberSigns NumberString Numerator NumericFunction NumericQ NuttallWindow NValues NyquistGridLines NyquistPlot O ObservabilityGramian ObservabilityMatrix ObservableDecomposition ObservableModelQ OddQ Off Offset OLEData On ONanGroupON OneIdentity Opacity Open OpenAppend Opener OpenerBox OpenerBoxOptions OpenerView OpenFunctionInspectorPacket Opening OpenRead OpenSpecialOptions OpenTemporary OpenWrite Operate OperatingSystem OptimumFlowData Optional OptionInspectorSettings OptionQ Options OptionsPacket OptionsPattern OptionValue OptionValueBox OptionValueBoxOptions Or Orange Order OrderDistribution OrderedQ Ordering Orderless OrnsteinUhlenbeckProcess Orthogonalize Out Outer OutputAutoOverwrite OutputControllabilityMatrix OutputControllableModelQ OutputForm OutputFormData OutputGrouping OutputMathEditExpression OutputNamePacket OutputResponse OutputSizeLimit OutputStream Over OverBar OverDot Overflow OverHat Overlaps Overlay OverlayBox OverlayBoxOptions Overscript OverscriptBox OverscriptBoxOptions OverTilde OverVector OwenT OwnValues PackingMethod PaddedForm Padding PadeApproximant PadLeft PadRight PageBreakAbove PageBreakBelow PageBreakWithin PageFooterLines PageFooters PageHeaderLines PageHeaders PageHeight PageRankCentrality PageWidth PairedBarChart PairedHistogram PairedSmoothHistogram PairedTTest PairedZTest PaletteNotebook PalettePath Pane PaneBox PaneBoxOptions Panel PanelBox PanelBoxOptions Paneled PaneSelector PaneSelectorBox PaneSelectorBoxOptions PaperWidth ParabolicCylinderD ParagraphIndent ParagraphSpacing ParallelArray ParallelCombine ParallelDo ParallelEvaluate Parallelization Parallelize ParallelMap ParallelNeeds ParallelProduct ParallelSubmit ParallelSum ParallelTable ParallelTry Parameter ParameterEstimator ParameterMixtureDistribution ParameterVariables ParametricFunction ParametricNDSolve ParametricNDSolveValue ParametricPlot ParametricPlot3D ParentConnect ParentDirectory ParentForm Parenthesize ParentList ParetoDistribution Part PartialCorrelationFunction PartialD ParticleData Partition PartitionsP PartitionsQ ParzenWindow PascalDistribution PassEventsDown PassEventsUp Paste PasteBoxFormInlineCells PasteButton Path PathGraph PathGraphQ Pattern PatternSequence PatternTest PauliMatrix PaulWavelet Pause PausedTime PDF PearsonChiSquareTest PearsonCorrelationTest PearsonDistribution PerformanceGoal PeriodicInterpolation Periodogram PeriodogramArray PermutationCycles PermutationCyclesQ PermutationGroup PermutationLength PermutationList PermutationListQ PermutationMax PermutationMin PermutationOrder PermutationPower PermutationProduct PermutationReplace Permutations PermutationSupport Permute PeronaMalikFilter Perpendicular PERTDistribution PetersenGraph PhaseMargins Pi Pick PIDData PIDDerivativeFilter PIDFeedforward PIDTune Piecewise PiecewiseExpand PieChart PieChart3D PillaiTrace PillaiTraceTest Pink Pivoting PixelConstrained PixelValue PixelValuePositions Placed Placeholder PlaceholderReplace Plain PlanarGraphQ Play PlayRange Plot Plot3D Plot3Matrix PlotDivision PlotJoined PlotLabel PlotLayout PlotLegends PlotMarkers PlotPoints PlotRange PlotRangeClipping PlotRangePadding PlotRegion PlotStyle Plus PlusMinus Pochhammer PodStates PodWidth Point Point3DBox PointBox PointFigureChart PointForm PointLegend PointSize PoissonConsulDistribution PoissonDistribution PoissonProcess PoissonWindow PolarAxes PolarAxesOrigin PolarGridLines PolarPlot PolarTicks PoleZeroMarkers PolyaAeppliDistribution PolyGamma Polygon Polygon3DBox Polygon3DBoxOptions PolygonBox PolygonBoxOptions PolygonHoleScale PolygonIntersections PolygonScale PolyhedronData PolyLog PolynomialExtendedGCD PolynomialForm PolynomialGCD PolynomialLCM PolynomialMod PolynomialQ PolynomialQuotient PolynomialQuotientRemainder PolynomialReduce PolynomialRemainder Polynomials PopupMenu PopupMenuBox PopupMenuBoxOptions PopupView PopupWindow Position Positive PositiveDefiniteMatrixQ PossibleZeroQ Postfix PostScript Power PowerDistribution PowerExpand PowerMod PowerModList PowerSpectralDensity PowersRepresentations PowerSymmetricPolynomial Precedence PrecedenceForm Precedes PrecedesEqual PrecedesSlantEqual PrecedesTilde Precision PrecisionGoal PreDecrement PredictionRoot PreemptProtect PreferencesPath Prefix PreIncrement Prepend PrependTo PreserveImageOptions Previous PriceGraphDistribution PrimaryPlaceholder Prime PrimeNu PrimeOmega PrimePi PrimePowerQ PrimeQ Primes PrimeZetaP PrimitiveRoot PrincipalComponents PrincipalValue Print PrintAction PrintForm PrintingCopies PrintingOptions PrintingPageRange PrintingStartingPageNumber PrintingStyleEnvironment PrintPrecision PrintTemporary Prism PrismBox PrismBoxOptions PrivateCellOptions PrivateEvaluationOptions PrivateFontOptions PrivateFrontEndOptions PrivateNotebookOptions PrivatePaths Probability ProbabilityDistribution ProbabilityPlot ProbabilityPr ProbabilityScalePlot ProbitModelFit ProcessEstimator ProcessParameterAssumptions ProcessParameterQ ProcessStateDomain ProcessTimeDomain Product ProductDistribution ProductLog ProgressIndicator ProgressIndicatorBox ProgressIndicatorBoxOptions Projection Prolog PromptForm Properties Property PropertyList PropertyValue Proportion Proportional Protect Protected ProteinData Pruning PseudoInverse Purple Put PutAppend Pyramid PyramidBox PyramidBoxOptions QBinomial QFactorial QGamma QHypergeometricPFQ QPochhammer QPolyGamma QRDecomposition QuadraticIrrationalQ Quantile QuantilePlot Quantity QuantityForm QuantityMagnitude QuantityQ QuantityUnit Quartics QuartileDeviation Quartiles QuartileSkewness QueueingNetworkProcess QueueingProcess QueueProperties Quiet Quit Quotient QuotientRemainder RadialityCentrality RadicalBox RadicalBoxOptions RadioButton RadioButtonBar RadioButtonBox RadioButtonBoxOptions Radon RamanujanTau RamanujanTauL RamanujanTauTheta RamanujanTauZ Random RandomChoice RandomComplex RandomFunction RandomGraph RandomImage RandomInteger RandomPermutation RandomPrime RandomReal RandomSample RandomSeed RandomVariate RandomWalkProcess Range RangeFilter RangeSpecification RankedMax RankedMin Raster Raster3D Raster3DBox Raster3DBoxOptions RasterArray RasterBox RasterBoxOptions Rasterize RasterSize Rational RationalFunctions Rationalize Rationals Ratios Raw RawArray RawBoxes RawData RawMedium RayleighDistribution Re Read ReadList ReadProtected Real RealBlockDiagonalForm RealDigits RealExponent Reals Reap Record RecordLists RecordSeparators Rectangle RectangleBox RectangleBoxOptions RectangleChart RectangleChart3D RecurrenceFilter RecurrenceTable RecurringDigitsForm Red Reduce RefBox ReferenceLineStyle ReferenceMarkers ReferenceMarkerStyle Refine ReflectionMatrix ReflectionTransform Refresh RefreshRate RegionBinarize RegionFunction RegionPlot RegionPlot3D RegularExpression Regularization Reinstall Release ReleaseHold ReliabilityDistribution ReliefImage ReliefPlot Remove RemoveAlphaChannel RemoveAsynchronousTask Removed RemoveInputStreamMethod RemoveOutputStreamMethod RemoveProperty RemoveScheduledTask RenameDirectory RenameFile RenderAll RenderingOptions RenewalProcess RenkoChart Repeated RepeatedNull RepeatedString Replace ReplaceAll ReplaceHeldPart ReplaceImageValue ReplaceList ReplacePart ReplacePixelValue ReplaceRepeated Resampling Rescale RescalingTransform ResetDirectory ResetMenusPacket ResetScheduledTask Residue Resolve Rest Resultant ResumePacket Return ReturnExpressionPacket ReturnInputFormPacket ReturnPacket ReturnTextPacket Reverse ReverseBiorthogonalSplineWavelet ReverseElement ReverseEquilibrium ReverseGraph ReverseUpEquilibrium RevolutionAxis RevolutionPlot3D RGBColor RiccatiSolve RiceDistribution RidgeFilter RiemannR RiemannSiegelTheta RiemannSiegelZ Riffle Right RightArrow RightArrowBar RightArrowLeftArrow RightCosetRepresentative RightDownTeeVector RightDownVector RightDownVectorBar RightTee RightTeeArrow RightTeeVector RightTriangle RightTriangleBar RightTriangleEqual RightUpDownVector RightUpTeeVector RightUpVector RightUpVectorBar RightVector RightVectorBar RiskAchievementImportance RiskReductionImportance RogersTanimotoDissimilarity Root RootApproximant RootIntervals RootLocusPlot RootMeanSquare RootOfUnityQ RootReduce Roots RootSum Rotate RotateLabel RotateLeft RotateRight RotationAction RotationBox RotationBoxOptions RotationMatrix RotationTransform Round RoundImplies RoundingRadius Row RowAlignments RowBackgrounds RowBox RowHeights RowLines RowMinHeight RowReduce RowsEqual RowSpacings RSolve RudvalisGroupRu Rule RuleCondition RuleDelayed RuleForm RulerUnits Run RunScheduledTask RunThrough RuntimeAttributes RuntimeOptions RussellRaoDissimilarity SameQ SameTest SampleDepth SampledSoundFunction SampledSoundList SampleRate SamplingPeriod SARIMAProcess SARMAProcess SatisfiabilityCount SatisfiabilityInstances SatisfiableQ Saturday Save Saveable SaveAutoDelete SaveDefinitions SawtoothWave Scale Scaled ScaleDivisions ScaledMousePosition ScaleOrigin ScalePadding ScaleRanges ScaleRangeStyle ScalingFunctions ScalingMatrix ScalingTransform Scan ScheduledTaskActiveQ ScheduledTaskData ScheduledTaskObject ScheduledTasks SchurDecomposition ScientificForm ScreenRectangle ScreenStyleEnvironment ScriptBaselineShifts ScriptLevel ScriptMinSize ScriptRules ScriptSizeMultipliers Scrollbars ScrollingOptions ScrollPosition Sec Sech SechDistribution SectionGrouping SectorChart SectorChart3D SectorOrigin SectorSpacing SeedRandom Select Selectable SelectComponents SelectedCells SelectedNotebook Selection SelectionAnimate SelectionCell SelectionCellCreateCell SelectionCellDefaultStyle SelectionCellParentStyle SelectionCreateCell SelectionDebuggerTag SelectionDuplicateCell SelectionEvaluate SelectionEvaluateCreateCell SelectionMove SelectionPlaceholder SelectionSetStyle SelectWithContents SelfLoops SelfLoopStyle SemialgebraicComponentInstances SendMail Sequence SequenceAlignment SequenceForm SequenceHold SequenceLimit Series SeriesCoefficient SeriesData SessionTime Set SetAccuracy SetAlphaChannel SetAttributes Setbacks SetBoxFormNamesPacket SetDelayed SetDirectory SetEnvironment SetEvaluationNotebook SetFileDate SetFileLoadingContext SetNotebookStatusLine SetOptions SetOptionsPacket SetPrecision SetProperty SetSelectedNotebook SetSharedFunction SetSharedVariable SetSpeechParametersPacket SetStreamPosition SetSystemOptions Setter SetterBar SetterBox SetterBoxOptions Setting SetValue Shading Shallow ShannonWavelet ShapiroWilkTest Share Sharpen ShearingMatrix ShearingTransform ShenCastanMatrix Short ShortDownArrow Shortest ShortestMatch ShortestPathFunction ShortLeftArrow ShortRightArrow ShortUpArrow Show ShowAutoStyles ShowCellBracket ShowCellLabel ShowCellTags ShowClosedCellArea ShowContents ShowControls ShowCursorTracker ShowGroupOpenCloseIcon ShowGroupOpener ShowInvisibleCharacters ShowPageBreaks ShowPredictiveInterface ShowSelection ShowShortBoxForm ShowSpecialCharacters ShowStringCharacters ShowSyntaxStyles ShrinkingDelay ShrinkWrapBoundingBox SiegelTheta SiegelTukeyTest Sign Signature SignedRankTest SignificanceLevel SignPadding SignTest SimilarityRules SimpleGraph SimpleGraphQ Simplify Sin Sinc SinghMaddalaDistribution SingleEvaluation SingleLetterItalics SingleLetterStyle SingularValueDecomposition SingularValueList SingularValuePlot SingularValues Sinh SinhIntegral SinIntegral SixJSymbol Skeleton SkeletonTransform SkellamDistribution Skewness SkewNormalDistribution Skip SliceDistribution Slider Slider2D Slider2DBox Slider2DBoxOptions SliderBox SliderBoxOptions SlideView Slot SlotSequence Small SmallCircle Smaller SmithDelayCompensator SmithWatermanSimilarity SmoothDensityHistogram SmoothHistogram SmoothHistogram3D SmoothKernelDistribution SocialMediaData Socket SokalSneathDissimilarity Solve SolveAlways SolveDelayed Sort SortBy Sound SoundAndGraphics SoundNote SoundVolume Sow Space SpaceForm Spacer Spacings Span SpanAdjustments SpanCharacterRounding SpanFromAbove SpanFromBoth SpanFromLeft SpanLineThickness SpanMaxSize SpanMinSize SpanningCharacters SpanSymmetric SparseArray SpatialGraphDistribution Speak SpeakTextPacket SpearmanRankTest SpearmanRho Spectrogram SpectrogramArray Specularity SpellingCorrection SpellingDictionaries SpellingDictionariesPath SpellingOptions SpellingSuggestionsPacket Sphere SphereBox SphericalBesselJ SphericalBesselY SphericalHankelH1 SphericalHankelH2 SphericalHarmonicY SphericalPlot3D SphericalRegion SpheroidalEigenvalue SpheroidalJoiningFactor SpheroidalPS SpheroidalPSPrime SpheroidalQS SpheroidalQSPrime SpheroidalRadialFactor SpheroidalS1 SpheroidalS1Prime SpheroidalS2 SpheroidalS2Prime Splice SplicedDistribution SplineClosed SplineDegree SplineKnots SplineWeights Split SplitBy SpokenString Sqrt SqrtBox SqrtBoxOptions Square SquaredEuclideanDistance SquareFreeQ SquareIntersection SquaresR SquareSubset SquareSubsetEqual SquareSuperset SquareSupersetEqual SquareUnion SquareWave StabilityMargins StabilityMarginsStyle StableDistribution Stack StackBegin StackComplete StackInhibit StandardDeviation StandardDeviationFilter StandardForm Standardize StandbyDistribution Star StarGraph StartAsynchronousTask StartingStepSize StartOfLine StartOfString StartScheduledTask StartupSound StateDimensions StateFeedbackGains StateOutputEstimator StateResponse StateSpaceModel StateSpaceRealization StateSpaceTransform StationaryDistribution StationaryWaveletPacketTransform StationaryWaveletTransform StatusArea StatusCentrality StepMonitor StieltjesGamma StirlingS1 StirlingS2 StopAsynchronousTask StopScheduledTask StrataVariables StratonovichProcess StreamColorFunction StreamColorFunctionScaling StreamDensityPlot StreamPlot StreamPoints StreamPosition Streams StreamScale StreamStyle String StringBreak StringByteCount StringCases StringCount StringDrop StringExpression StringForm StringFormat StringFreeQ StringInsert StringJoin StringLength StringMatchQ StringPosition StringQ StringReplace StringReplaceList StringReplacePart StringReverse StringRotateLeft StringRotateRight StringSkeleton StringSplit StringTake StringToStream StringTrim StripBoxes StripOnInput StripWrapperBoxes StrokeForm StructuralImportance StructuredArray StructuredSelection StruveH StruveL Stub StudentTDistribution Style StyleBox StyleBoxAutoDelete StyleBoxOptions StyleData StyleDefinitions StyleForm StyleKeyMapping StyleMenuListing StyleNameDialogSettings StyleNames StylePrint StyleSheetPath Subfactorial Subgraph SubMinus SubPlus SubresultantPolynomialRemainders SubresultantPolynomials Subresultants Subscript SubscriptBox SubscriptBoxOptions Subscripted Subset SubsetEqual Subsets SubStar Subsuperscript SubsuperscriptBox SubsuperscriptBoxOptions Subtract SubtractFrom SubValues Succeeds SucceedsEqual SucceedsSlantEqual SucceedsTilde SuchThat Sum SumConvergence Sunday SuperDagger SuperMinus SuperPlus Superscript SuperscriptBox SuperscriptBoxOptions Superset SupersetEqual SuperStar Surd SurdForm SurfaceColor SurfaceGraphics SurvivalDistribution SurvivalFunction SurvivalModel SurvivalModelFit SuspendPacket SuzukiDistribution SuzukiGroupSuz SwatchLegend Switch Symbol SymbolName SymletWavelet Symmetric SymmetricGroup SymmetricMatrixQ SymmetricPolynomial SymmetricReduction Symmetrize SymmetrizedArray SymmetrizedArrayRules SymmetrizedDependentComponents SymmetrizedIndependentComponents SymmetrizedReplacePart SynchronousInitialization SynchronousUpdating Syntax SyntaxForm SyntaxInformation SyntaxLength SyntaxPacket SyntaxQ SystemDialogInput SystemException SystemHelpPath SystemInformation SystemInformationData SystemOpen SystemOptions SystemsModelDelay SystemsModelDelayApproximate SystemsModelDelete SystemsModelDimensions SystemsModelExtract SystemsModelFeedbackConnect SystemsModelLabels SystemsModelOrder SystemsModelParallelConnect SystemsModelSeriesConnect SystemsModelStateFeedbackConnect SystemStub Tab TabFilling Table TableAlignments TableDepth TableDirections TableForm TableHeadings TableSpacing TableView TableViewBox TabSpacings TabView TabViewBox TabViewBoxOptions TagBox TagBoxNote TagBoxOptions TaggingRules TagSet TagSetDelayed TagStyle TagUnset Take TakeWhile Tally Tan Tanh TargetFunctions TargetUnits TautologyQ TelegraphProcess TemplateBox TemplateBoxOptions TemplateSlotSequence TemporalData Temporary TemporaryVariable TensorContract TensorDimensions TensorExpand TensorProduct TensorQ TensorRank TensorReduce TensorSymmetry TensorTranspose TensorWedge Tetrahedron TetrahedronBox TetrahedronBoxOptions TeXForm TeXSave Text Text3DBox Text3DBoxOptions TextAlignment TextBand TextBoundingBox TextBox TextCell TextClipboardType TextData TextForm TextJustification TextLine TextPacket TextParagraph TextRecognize TextRendering TextStyle Texture TextureCoordinateFunction TextureCoordinateScaling Therefore ThermometerGauge Thick Thickness Thin Thinning ThisLink ThompsonGroupTh Thread ThreeJSymbol Threshold Through Throw Thumbnail Thursday Ticks TicksStyle Tilde TildeEqual TildeFullEqual TildeTilde TimeConstrained TimeConstraint Times TimesBy TimeSeriesForecast TimeSeriesInvertibility TimeUsed TimeValue TimeZone Timing Tiny TitleGrouping TitsGroupT ToBoxes ToCharacterCode ToColor ToContinuousTimeModel ToDate ToDiscreteTimeModel ToeplitzMatrix ToExpression ToFileName Together Toggle ToggleFalse Toggler TogglerBar TogglerBox TogglerBoxOptions ToHeldExpression ToInvertibleTimeSeries TokenWords Tolerance ToLowerCase ToNumberField TooBig Tooltip TooltipBox TooltipBoxOptions TooltipDelay TooltipStyle Top TopHatTransform TopologicalSort ToRadicals ToRules ToString Total TotalHeight TotalVariationFilter TotalWidth TouchscreenAutoZoom TouchscreenControlPlacement ToUpperCase Tr Trace TraceAbove TraceAction TraceBackward TraceDepth TraceDialog TraceForward TraceInternal TraceLevel TraceOff TraceOn TraceOriginal TracePrint TraceScan TrackedSymbols TradingChart TraditionalForm TraditionalFunctionNotation TraditionalNotation TraditionalOrder TransferFunctionCancel TransferFunctionExpand TransferFunctionFactor TransferFunctionModel TransferFunctionPoles TransferFunctionTransform TransferFunctionZeros TransformationFunction TransformationFunctions TransformationMatrix TransformedDistribution TransformedField Translate TranslationTransform TransparentColor Transpose TreeForm TreeGraph TreeGraphQ TreePlot TrendStyle TriangleWave TriangularDistribution Trig TrigExpand TrigFactor TrigFactorList Trigger TrigReduce TrigToExp TrimmedMean True TrueQ TruncatedDistribution TsallisQExponentialDistribution TsallisQGaussianDistribution TTest Tube TubeBezierCurveBox TubeBezierCurveBoxOptions TubeBox TubeBSplineCurveBox TubeBSplineCurveBoxOptions Tuesday TukeyLambdaDistribution TukeyWindow Tuples TuranGraph TuringMachine Transparent UnateQ Uncompress Undefined UnderBar Underflow Underlined Underoverscript UnderoverscriptBox UnderoverscriptBoxOptions Underscript UnderscriptBox UnderscriptBoxOptions UndirectedEdge UndirectedGraph UndirectedGraphQ UndocumentedTestFEParserPacket UndocumentedTestGetSelectionPacket Unequal Unevaluated UniformDistribution UniformGraphDistribution UniformSumDistribution Uninstall Union UnionPlus Unique UnitBox UnitConvert UnitDimensions Unitize UnitRootTest UnitSimplify UnitStep UnitTriangle UnitVector Unprotect UnsameQ UnsavedVariables Unset UnsetShared UntrackedVariables Up UpArrow UpArrowBar UpArrowDownArrow Update UpdateDynamicObjects UpdateDynamicObjectsSynchronous UpdateInterval UpDownArrow UpEquilibrium UpperCaseQ UpperLeftArrow UpperRightArrow UpperTriangularize Upsample UpSet UpSetDelayed UpTee UpTeeArrow UpValues URL URLFetch URLFetchAsynchronous URLSave URLSaveAsynchronous UseGraphicsRange Using UsingFrontEnd V2Get ValidationLength Value ValueBox ValueBoxOptions ValueForm ValueQ ValuesData Variables Variance VarianceEquivalenceTest VarianceEstimatorFunction VarianceGammaDistribution VarianceTest VectorAngle VectorColorFunction VectorColorFunctionScaling VectorDensityPlot VectorGlyphData VectorPlot VectorPlot3D VectorPoints VectorQ Vectors VectorScale VectorStyle Vee Verbatim Verbose VerboseConvertToPostScriptPacket VerifyConvergence VerifySolutions VerifyTestAssumptions Version VersionNumber VertexAdd VertexCapacity VertexColors VertexComponent VertexConnectivity VertexCoordinateRules VertexCoordinates VertexCorrelationSimilarity VertexCosineSimilarity VertexCount VertexCoverQ VertexDataCoordinates VertexDegree VertexDelete VertexDiceSimilarity VertexEccentricity VertexInComponent VertexInDegree VertexIndex VertexJaccardSimilarity VertexLabeling VertexLabels VertexLabelStyle VertexList VertexNormals VertexOutComponent VertexOutDegree VertexQ VertexRenderingFunction VertexReplace VertexShape VertexShapeFunction VertexSize VertexStyle VertexTextureCoordinates VertexWeight Vertical VerticalBar VerticalForm VerticalGauge VerticalSeparator VerticalSlider VerticalTilde ViewAngle ViewCenter ViewMatrix ViewPoint ViewPointSelectorSettings ViewPort ViewRange ViewVector ViewVertical VirtualGroupData Visible VisibleCell VoigtDistribution VonMisesDistribution WaitAll WaitAsynchronousTask WaitNext WaitUntil WakebyDistribution WalleniusHypergeometricDistribution WaringYuleDistribution WatershedComponents WatsonUSquareTest WattsStrogatzGraphDistribution WaveletBestBasis WaveletFilterCoefficients WaveletImagePlot WaveletListPlot WaveletMapIndexed WaveletMatrixPlot WaveletPhi WaveletPsi WaveletScale WaveletScalogram WaveletThreshold WeaklyConnectedComponents WeaklyConnectedGraphQ WeakStationarity WeatherData WeberE Wedge Wednesday WeibullDistribution WeierstrassHalfPeriods WeierstrassInvariants WeierstrassP WeierstrassPPrime WeierstrassSigma WeierstrassZeta WeightedAdjacencyGraph WeightedAdjacencyMatrix WeightedData WeightedGraphQ Weights WelchWindow WheelGraph WhenEvent Which While White Whitespace WhitespaceCharacter WhittakerM WhittakerW WienerFilter WienerProcess WignerD WignerSemicircleDistribution WilksW WilksWTest WindowClickSelect WindowElements WindowFloating WindowFrame WindowFrameElements WindowMargins WindowMovable WindowOpacity WindowSelected WindowSize WindowStatusArea WindowTitle WindowToolbars WindowWidth With WolframAlpha WolframAlphaDate WolframAlphaQuantity WolframAlphaResult Word WordBoundary WordCharacter WordData WordSearch WordSeparators WorkingPrecision Write WriteString Wronskian XMLElement XMLObject Xnor Xor Yellow YuleDissimilarity ZernikeR ZeroSymmetric ZeroTest ZeroWidthTimes Zeta ZetaZero ZipfDistribution ZTest ZTransform $Aborted $ActivationGroupID $ActivationKey $ActivationUserRegistered $AddOnsDirectory $AssertFunction $Assumptions $AsynchronousTask $BaseDirectory $BatchInput $BatchOutput $BoxForms $ByteOrdering $Canceled $CharacterEncoding $CharacterEncodings $CommandLine $CompilationTarget $ConditionHold $ConfiguredKernels $Context $ContextPath $ControlActiveSetting $CreationDate $CurrentLink $DateStringFormat $DefaultFont $DefaultFrontEnd $DefaultImagingDevice $DefaultPath $Display $DisplayFunction $DistributedContexts $DynamicEvaluation $Echo $Epilog $ExportFormats $Failed $FinancialDataSource $FormatType $FrontEnd $FrontEndSession $GeoLocation $HistoryLength $HomeDirectory $HTTPCookies $IgnoreEOF $ImagingDevices $ImportFormats $InitialDirectory $Input $InputFileName $InputStreamMethods $Inspector $InstallationDate $InstallationDirectory $InterfaceEnvironment $IterationLimit $KernelCount $KernelID $Language $LaunchDirectory $LibraryPath $LicenseExpirationDate $LicenseID $LicenseProcesses $LicenseServer $LicenseSubprocesses $LicenseType $Line $Linked $LinkSupported $LoadedFiles $MachineAddresses $MachineDomain $MachineDomains $MachineEpsilon $MachineID $MachineName $MachinePrecision $MachineType $MaxExtraPrecision $MaxLicenseProcesses $MaxLicenseSubprocesses $MaxMachineNumber $MaxNumber $MaxPiecewiseCases $MaxPrecision $MaxRootDegree $MessageGroups $MessageList $MessagePrePrint $Messages $MinMachineNumber $MinNumber $MinorReleaseNumber $MinPrecision $ModuleNumber $NetworkLicense $NewMessage $NewSymbol $Notebooks $NumberMarks $Off $OperatingSystem $Output $OutputForms $OutputSizeLimit $OutputStreamMethods $Packages $ParentLink $ParentProcessID $PasswordFile $PatchLevelID $Path $PathnameSeparator $PerformanceGoal $PipeSupported $Post $Pre $PreferencesDirectory $PrePrint $PreRead $PrintForms $PrintLiteral $ProcessID $ProcessorCount $ProcessorType $ProductInformation $ProgramName $RandomState $RecursionLimit $ReleaseNumber $RootDirectory $ScheduledTask $ScriptCommandLine $SessionID $SetParentLink $SharedFunctions $SharedVariables $SoundDisplay $SoundDisplayFunction $SuppressInputFormHeads $SynchronousEvaluation $SyntaxHandler $System $SystemCharacterEncoding $SystemID $SystemWordLength $TemporaryDirectory $TemporaryPrefix $TextStyle $TimedOut $TimeUnit $TimeZone $TopDirectory $TraceOff $TraceOn $TracePattern $TracePostAction $TracePreAction $Urgent $UserAddOnsDirectory $UserBaseDirectory $UserDocumentsDirectory $UserName $Version $VersionNumber",
-contains:[{className:"comment",begin:/\(\*/,end:/\*\)/},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,{className:"list",begin:/\{/,end:/\}/,illegal:/:/}]}}),a.registerLanguage("matlab",function(a){var b=[a.C_NUMBER_MODE,{className:"string",begin:"'",end:"'",contains:[a.BACKSLASH_ESCAPE,{begin:"''"}]}],c={relevance:0,contains:[{className:"operator",begin:/'['\.]*/}]};return{keywords:{keyword:"break case catch classdef continue else elseif end enumerated events for function global if methods otherwise parfor persistent properties return spmd switch try while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson"},illegal:'(//|"|#|/\\*|\\s+/\\w+)',contains:[{className:"function",beginKeywords:"function",end:"$",contains:[a.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"},{className:"params",begin:"\\[",end:"\\]"}]},{begin:/[a-zA-Z_][a-zA-Z_0-9]*'['\.]*/,returnBegin:!0,relevance:0,contains:[{begin:/[a-zA-Z_][a-zA-Z_0-9]*/,relevance:0},c.contains[0]]},{className:"matrix",begin:"\\[",end:"\\]",contains:b,relevance:0,starts:c},{className:"cell",begin:"\\{",end:/}/,contains:b,relevance:0,starts:c},{begin:/\)/,relevance:0,starts:c},a.COMMENT("^\\s*\\%\\{\\s*$","^\\s*\\%\\}\\s*$"),a.COMMENT("\\%","$")].concat(b)}}),a.registerLanguage("mel",function(a){return{keywords:"int float string vector matrix if else switch case default while do for in break continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor animDisplay animView annotate appendStringArray applicationName applyAttrPreset applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem componentEditor compositingInterop computePolysetVolume condition cone confirmDialog connectAttr connectControl connectDynamic connectJoint connectionInfo constrain constrainValue constructionHistory container containsMultibyte contextInfo control convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected displayColor displayCull displayLevelOfDetail displayPref displayRGBColor displaySmoothness displayStats displayString displaySurface distanceDimContext distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor editorTemplate effector emit emitter enableDevice encodeString endString endsWith env equivalent equivalentTol erf error eval evalDeferred evalEcho event exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo filetest filletCurve filter filterCurve filterExpand filterStudioImport findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss geometryConstraint getApplicationVersionAsFloat getAttr getClassification getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation listNodeTypes listPanelCategories listRelatives listSets listTransforms listUnselected listerEditor loadFluid loadNewShelf loadPlugin loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration panelHistory paramDimContext paramDimension paramLocator parent parentConstraint particle particleExists particleInstancer particleRenderInfo partition pasteKey pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE registerPluginResource rehash reloadImage removeJoint removeMultiInstance removePanelCategory rename renameAttr renameSelectionList renameUI render renderGlobalsNode renderInfo renderLayerButton renderLayerParent renderLayerPostProcess renderLayerUnparent renderManip renderPartition renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor renderWindowSelectContext renderer reorder reorderDeformers requires reroot resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType selectedNodes selectionConnection separator setAttr setAttrEnumResource setAttrMapping setAttrNiceNameResource setConstraintRestPosition setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField shortNameOf showHelp showHidden showManipCtx showSelectionInTitle showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString stringToStringArray strip stripPrefixFromName stroke subdAutoProjection subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList textToShelf textureDisplacePlane textureHairColor texturePlacementContext textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper trace track trackCtx transferAttributes transformCompare transformLimits translator trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform",illegal:"</",contains:[a.C_NUMBER_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"string",begin:"`",end:"`",contains:[a.BACKSLASH_ESCAPE]},{className:"variable",variants:[{begin:"\\$\\d"},{begin:"[\\$\\%\\@](\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)"},{begin:"\\*(\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)",relevance:0}]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]}}),a.registerLanguage("mercury",function(a){var b={keyword:"module use_module import_module include_module end_module initialise mutable initialize finalize finalise interface implementation pred mode func type inst solver any_pred any_func is semidet det nondet multi erroneous failure cc_nondet cc_multi typeclass instance where pragma promise external trace atomic or_else require_complete_switch require_det require_semidet require_multi require_nondet require_cc_multi require_cc_nondet require_erroneous require_failure",pragma:"inline no_inline type_spec source_file fact_table obsolete memo loop_check minimal_model terminates does_not_terminate check_termination promise_equivalent_clauses",preprocessor:"foreign_proc foreign_decl foreign_code foreign_type foreign_import_module foreign_export_enum foreign_export foreign_enum may_call_mercury will_not_call_mercury thread_safe not_thread_safe maybe_thread_safe promise_pure promise_semipure tabled_for_io local untrailed trailed attach_to_io_state can_pass_as_mercury_type stable will_not_throw_exception may_modify_trail will_not_modify_trail may_duplicate may_not_duplicate affects_liveness does_not_affect_liveness doesnt_affect_liveness no_sharing unknown_sharing sharing",built_in:"some all not if then else true fail false try catch catch_any semidet_true semidet_false semidet_fail impure_true impure semipure"},c={className:"label",begin:"XXX",end:"$",endsWithParent:!0,relevance:0},d=a.inherit(a.C_LINE_COMMENT_MODE,{begin:"%"}),e=a.inherit(a.C_BLOCK_COMMENT_MODE,{relevance:0});d.contains.push(c),e.contains.push(c);var f={className:"number",begin:"0'.\\|0[box][0-9a-fA-F]*"},g=a.inherit(a.APOS_STRING_MODE,{relevance:0}),h=a.inherit(a.QUOTE_STRING_MODE,{relevance:0}),i={className:"constant",begin:"\\\\[abfnrtv]\\|\\\\x[0-9a-fA-F]*\\\\\\|%[-+# *.0-9]*[dioxXucsfeEgGp]",relevance:0};h.contains.push(i);var j={className:"built_in",variants:[{begin:"<=>"},{begin:"<=",relevance:0},{begin:"=>",relevance:0},{begin:"/\\\\"},{begin:"\\\\/"}]},k={className:"built_in",variants:[{begin:":-\\|-->"},{begin:"=",relevance:0}]};return{aliases:["m","moo"],keywords:b,contains:[j,k,d,e,f,a.NUMBER_MODE,g,h,{begin:/:-/}]}}),a.registerLanguage("mizar",function(a){return{keywords:"environ vocabularies notations constructors definitions registrations theorems schemes requirements begin end definition registration cluster existence pred func defpred deffunc theorem proof let take assume then thus hence ex for st holds consider reconsider such that and in provided of as from be being by means equals implies iff redefine define now not or attr is mode suppose per cases set thesis contradiction scheme reserve struct correctness compatibility coherence symmetry assymetry reflexivity irreflexivity connectedness uniqueness commutativity idempotence involutiveness projectivity",contains:[a.COMMENT("::","$")]}}),a.registerLanguage("perl",function(a){var b="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when",c={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:b},d={begin:"->{",end:"}"},e={className:"variable",variants:[{begin:/\$\d/},{begin:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{begin:/[\$%@][^\s\w{]/,relevance:0}]},f=[a.BACKSLASH_ESCAPE,c,e],g=[e,a.HASH_COMMENT_MODE,a.COMMENT("^\\=\\w","\\=cut",{endsWithParent:!0}),d,{className:"string",contains:f,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*\\<",end:"\\>",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[a.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[a.BACKSLASH_ESCAPE]},{begin:"{\\w+}",contains:[],relevance:0},{begin:"-?\\w+\\s*\\=\\>",contains:[],relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+a.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[a.HASH_COMMENT_MODE,{className:"regexp",begin:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",relevance:10},{className:"regexp",begin:"(m|qr)?/",end:"/[a-z]*",contains:[a.BACKSLASH_ESCAPE],relevance:0}]},{className:"sub",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",relevance:5},{className:"operator",begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return c.contains=g,d.contains=g,{aliases:["pl"],keywords:b,contains:g}}),a.registerLanguage("mojolicious",function(a){return{subLanguage:"xml",contains:[{className:"preprocessor",begin:"^__(END|DATA)__$"},{begin:"^\\s*%{1,2}={0,2}",end:"$",subLanguage:"perl"},{begin:"<%{1,2}={0,2}",end:"={0,1}%>",subLanguage:"perl",excludeBegin:!0,excludeEnd:!0}]}}),a.registerLanguage("monkey",function(a){var b={className:"number",relevance:0,variants:[{begin:"[$][a-fA-F0-9]+"},a.NUMBER_MODE]};return{case_insensitive:!0,keywords:{keyword:"public private property continue exit extern new try catch eachin not abstract final select case default const local global field end if then else elseif endif while wend repeat until forever for to step next return module inline throw",built_in:"DebugLog DebugStop Error Print ACos ACosr ASin ASinr ATan ATan2 ATan2r ATanr Abs Abs Ceil Clamp Clamp Cos Cosr Exp Floor Log Max Max Min Min Pow Sgn Sgn Sin Sinr Sqrt Tan Tanr Seed PI HALFPI TWOPI",literal:"true false null and or shl shr mod"},illegal:/\/\*/,contains:[a.COMMENT("#rem","#end"),a.COMMENT("'","$",{relevance:0}),{className:"function",beginKeywords:"function method",end:"[(=:]|$",illegal:/\n/,contains:[a.UNDERSCORE_TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:"$",contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},{className:"variable",begin:"\\b(self|super)\\b"},{className:"preprocessor",beginKeywords:"import",end:"$"},{className:"preprocessor",begin:"\\s*#",end:"$",keywords:"if else elseif endif end then"},{className:"pi",begin:"^\\s*strict\\b"},{beginKeywords:"alias",end:"=",contains:[a.UNDERSCORE_TITLE_MODE]},a.QUOTE_STRING_MODE,b]}}),a.registerLanguage("nginx",function(a){var b={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/}/},{begin:"[\\$\\@]"+a.UNDERSCORE_IDENT_RE}]},c={endsWithParent:!0,lexemes:"[a-z/_]+",keywords:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},relevance:0,illegal:"=>",contains:[a.HASH_COMMENT_MODE,{className:"string",contains:[a.BACKSLASH_ESCAPE,b],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{className:"url",begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[b]},{className:"regexp",contains:[a.BACKSLASH_ESCAPE,b],variants:[{begin:"\\s\\^",end:"\\s|{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},b]};return{aliases:["nginxconf"],contains:[a.HASH_COMMENT_MODE,{begin:a.UNDERSCORE_IDENT_RE+"\\s",end:";|{",returnBegin:!0,contains:[{className:"title",begin:a.UNDERSCORE_IDENT_RE,starts:c}],relevance:0}],illegal:"[^\\s\\}]"}}),a.registerLanguage("nimrod",function(a){return{aliases:["nim"],keywords:{keyword:"addr and as asm bind block break|0 case|0 cast const|0 continue|0 converter discard distinct|10 div do elif else|0 end|0 enum|0 except export finally for from generic if|0 import|0 in include|0 interface is isnot|10 iterator|10 let|0 macro method|10 mixin mod nil not notin|10 object|0 of or out proc|10 ptr raise ref|10 return shl shr static template try|0 tuple type|0 using|0 var|0 when while|0 with without xor yield",literal:"shared guarded stdin stdout stderr result|10 true false"},contains:[{className:"decorator",begin:/{\./,end:/\.}/,relevance:10},{className:"string",begin:/[a-zA-Z]\w*"/,end:/"/,contains:[{begin:/""/}]},{className:"string",begin:/([a-zA-Z]\w*)?"""/,end:/"""/},a.QUOTE_STRING_MODE,{className:"type",begin:/\b[A-Z]\w+\b/,relevance:0},{className:"type",begin:/\b(int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|float|float32|float64|bool|char|string|cstring|pointer|expr|stmt|void|auto|any|range|array|openarray|varargs|seq|set|clong|culong|cchar|cschar|cshort|cint|csize|clonglong|cfloat|cdouble|clongdouble|cuchar|cushort|cuint|culonglong|cstringarray|semistatic)\b/},{className:"number",begin:/\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/,relevance:0},{className:"number",begin:/\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/,relevance:0},{className:"number",begin:/\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/,relevance:0},{className:"number",begin:/\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/,relevance:0},a.HASH_COMMENT_MODE]}}),a.registerLanguage("nix",function(a){var b={keyword:"rec with let in inherit assert if else then",constant:"true false or and null",built_in:"import abort baseNameOf dirOf isNull builtins map removeAttrs throw toString derivation"},c={className:"subst",begin:/\$\{/,end:/}/,keywords:b},d={className:"variable",begin:/[a-zA-Z0-9-_]+(\s*=)/,relevance:0},e={className:"string",begin:"''",end:"''",contains:[c]},f={className:"string",begin:'"',end:'"',contains:[c]},g=[a.NUMBER_MODE,a.HASH_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,e,f,d];return c.contains=g,{aliases:["nixos"],keywords:b,contains:g}}),a.registerLanguage("nsis",function(a){var b={className:"symbol",begin:"\\$(ADMINTOOLS|APPDATA|CDBURN_AREA|CMDLINE|COMMONFILES32|COMMONFILES64|COMMONFILES|COOKIES|DESKTOP|DOCUMENTS|EXEDIR|EXEFILE|EXEPATH|FAVORITES|FONTS|HISTORY|HWNDPARENT|INSTDIR|INTERNET_CACHE|LANGUAGE|LOCALAPPDATA|MUSIC|NETHOOD|OUTDIR|PICTURES|PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES32|PROGRAMFILES64|PROGRAMFILES|QUICKLAUNCH|RECENT|RESOURCES_LOCALIZED|RESOURCES|SENDTO|SMPROGRAMS|SMSTARTUP|STARTMENU|SYSDIR|TEMP|TEMPLATES|VIDEOS|WINDIR)"},c={className:"constant",begin:"\\$+{[a-zA-Z0-9_]+}"},d={className:"variable",begin:"\\$+[a-zA-Z0-9_]+",illegal:"\\(\\){}"},e={className:"constant",begin:"\\$+\\([a-zA-Z0-9_]+\\)"},f={className:"params",begin:"(ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)"},g={className:"constant",begin:"\\!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversionsystem|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|searchparse|searchreplace|tempfile|undef|verbose|warning)"};return{case_insensitive:!1,keywords:{keyword:"Abort AddBrandingImage AddSize AllowRootDirInstall AllowSkipFiles AutoCloseWindow BGFont BGGradient BrandingText BringToFront Call CallInstDLL Caption ChangeUI CheckBitmap ClearErrors CompletedText ComponentText CopyFiles CRCCheck CreateDirectory CreateFont CreateShortCut Delete DeleteINISec DeleteINIStr DeleteRegKey DeleteRegValue DetailPrint DetailsButtonText DirText DirVar DirVerify EnableWindow EnumRegKey EnumRegValue Exch Exec ExecShell ExecWait ExpandEnvStrings File FileBufSize FileClose FileErrorText FileOpen FileRead FileReadByte FileReadUTF16LE FileReadWord FileSeek FileWrite FileWriteByte FileWriteUTF16LE FileWriteWord FindClose FindFirst FindNext FindWindow FlushINI FunctionEnd GetCurInstType GetCurrentAddress GetDlgItem GetDLLVersion GetDLLVersionLocal GetErrorLevel GetFileTime GetFileTimeLocal GetFullPathName GetFunctionAddress GetInstDirError GetLabelAddress GetTempFileName Goto HideWindow Icon IfAbort IfErrors IfFileExists IfRebootFlag IfSilent InitPluginsDir InstallButtonText InstallColors InstallDir InstallDirRegKey InstProgressFlags InstType InstTypeGetText InstTypeSetText IntCmp IntCmpU IntFmt IntOp IsWindow LangString LicenseBkColor LicenseData LicenseForceSelection LicenseLangString LicenseText LoadLanguageFile LockWindow LogSet LogText ManifestDPIAware ManifestSupportedOS MessageBox MiscButtonText Name Nop OutFile Page PageCallbacks PageExEnd Pop Push Quit ReadEnvStr ReadINIStr ReadRegDWORD ReadRegStr Reboot RegDLL Rename RequestExecutionLevel ReserveFile Return RMDir SearchPath SectionEnd SectionGetFlags SectionGetInstTypes SectionGetSize SectionGetText SectionGroupEnd SectionIn SectionSetFlags SectionSetInstTypes SectionSetSize SectionSetText SendMessage SetAutoClose SetBrandingImage SetCompress SetCompressor SetCompressorDictSize SetCtlColors SetCurInstType SetDatablockOptimize SetDateSave SetDetailsPrint SetDetailsView SetErrorLevel SetErrors SetFileAttributes SetFont SetOutPath SetOverwrite SetPluginUnload SetRebootFlag SetRegView SetShellVarContext SetSilent ShowInstDetails ShowUninstDetails ShowWindow SilentInstall SilentUnInstall Sleep SpaceTexts StrCmp StrCmpS StrCpy StrLen SubCaption SubSectionEnd Unicode UninstallButtonText UninstallCaption UninstallIcon UninstallSubCaption UninstallText UninstPage UnRegDLL Var VIAddVersionKey VIFileVersion VIProductVersion WindowIcon WriteINIStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr WriteUninstaller XPStyle",
-return-1==c.indexOf(a)&&-1==f.indexOf(a)&&-1==d.indexOf(a)});g=g.concat(e);var h={className:"string",relevance:0,variants:[{begin:'"',end:'"',contains:[{begin:'""'}]},{begin:"'",end:"'",contains:[{begin:"''"}]}]},i={className:"number",begin:a.NUMBER_RE,relevance:0},j={className:"string",variants:[a.QUOTE_STRING_MODE,{begin:"'\\\\?.",end:"'",illegal:"."}]},k={className:"preprocessor",begin:"#",end:"$",keywords:"if else elif endif define undef warning error line pragma ifdef ifndef",contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",contains:[j,{className:"string",begin:"<",end:">",illegal:"\\n"}]},j,i,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]};return{aliases:["sqf"],case_insensitive:!0,keywords:{keyword:c.join(" "),built_in:g.join(" "),literal:f.join(" ")},contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,i,h,k]}}),a.registerLanguage("sql",function(a){var b=a.COMMENT("--","$");return{case_insensitive:!0,illegal:/[<>{}*]/,contains:[{className:"operator",beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke",end:/;/,endsWithParent:!0,keywords:{keyword:"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes c cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle d data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration e each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract f failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function g general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http i id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists k keep keep_duplicates key keys kill l language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim m main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex n name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding p package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime t table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[a.BACKSLASH_ESCAPE,{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[a.BACKSLASH_ESCAPE,{begin:'""'}]},{className:"string",begin:"`",end:"`",contains:[a.BACKSLASH_ESCAPE]},a.C_NUMBER_MODE,a.C_BLOCK_COMMENT_MODE,b]},a.C_BLOCK_COMMENT_MODE,b]}}),a.registerLanguage("stata",function(a){return{aliases:["do","ado"],case_insensitive:!0,keywords:"if else in foreach for forv forva forval forvalu forvalue forvalues by bys bysort xi quietly qui capture about ac ac_7 acprplot acprplot_7 adjust ado adopath adoupdate alpha ameans an ano anov anova anova_estat anova_terms anovadef aorder ap app appe appen append arch arch_dr arch_estat arch_p archlm areg areg_p args arima arima_dr arima_estat arima_p as asmprobit asmprobit_estat asmprobit_lf asmprobit_mfx__dlg asmprobit_p ass asse asser assert avplot avplot_7 avplots avplots_7 bcskew0 bgodfrey binreg bip0_lf biplot bipp_lf bipr_lf bipr_p biprobit bitest bitesti bitowt blogit bmemsize boot bootsamp bootstrap bootstrap_8 boxco_l boxco_p boxcox boxcox_6 boxcox_p bprobit br break brier bro brow brows browse brr brrstat bs bs_7 bsampl_w bsample bsample_7 bsqreg bstat bstat_7 bstat_8 bstrap bstrap_7 ca ca_estat ca_p cabiplot camat canon canon_8 canon_8_p canon_estat canon_p cap caprojection capt captu captur capture cat cc cchart cchart_7 cci cd censobs_table centile cf char chdir checkdlgfiles checkestimationsample checkhlpfiles checksum chelp ci cii cl class classutil clear cli clis clist clo clog clog_lf clog_p clogi clogi_sw clogit clogit_lf clogit_p clogitp clogl_sw cloglog clonevar clslistarray cluster cluster_measures cluster_stop cluster_tree cluster_tree_8 clustermat cmdlog cnr cnre cnreg cnreg_p cnreg_sw cnsreg codebook collaps4 collapse colormult_nb colormult_nw compare compress conf confi confir confirm conren cons const constr constra constrai constrain constraint continue contract copy copyright copysource cor corc corr corr2data corr_anti corr_kmo corr_smc corre correl correla correlat correlate corrgram cou coun count cox cox_p cox_sw coxbase coxhaz coxvar cprplot cprplot_7 crc cret cretu cretur creturn cross cs cscript cscript_log csi ct ct_is ctset ctst_5 ctst_st cttost cumsp cumsp_7 cumul cusum cusum_7 cutil d datasig datasign datasigna datasignat datasignatu datasignatur datasignature datetof db dbeta de dec deco decod decode deff des desc descr descri describ describe destring dfbeta dfgls dfuller di di_g dir dirstats dis discard disp disp_res disp_s displ displa display distinct do doe doed doedi doedit dotplot dotplot_7 dprobit drawnorm drop ds ds_util dstdize duplicates durbina dwstat dydx e ed edi edit egen eivreg emdef en enc enco encod encode eq erase ereg ereg_lf ereg_p ereg_sw ereghet ereghet_glf ereghet_glf_sh ereghet_gp ereghet_ilf ereghet_ilf_sh ereghet_ip eret eretu eretur ereturn err erro error est est_cfexist est_cfname est_clickable est_expand est_hold est_table est_unhold est_unholdok estat estat_default estat_summ estat_vce_only esti estimates etodow etof etomdy ex exi exit expand expandcl fac fact facto factor factor_estat factor_p factor_pca_rotated factor_rotate factormat fcast fcast_compute fcast_graph fdades fdadesc fdadescr fdadescri fdadescrib fdadescribe fdasav fdasave fdause fh_st file open file read file close file filefilter fillin find_hlp_file findfile findit findit_7 fit fl fli flis flist for5_0 form forma format fpredict frac_154 frac_adj frac_chk frac_cox frac_ddp frac_dis frac_dv frac_in frac_mun frac_pp frac_pq frac_pv frac_wgt frac_xo fracgen fracplot fracplot_7 fracpoly fracpred fron_ex fron_hn fron_p fron_tn fron_tn2 frontier ftodate ftoe ftomdy ftowdate g gamhet_glf gamhet_gp gamhet_ilf gamhet_ip gamma gamma_d2 gamma_p gamma_sw gammahet gdi_hexagon gdi_spokes ge gen gene gener genera generat generate genrank genstd genvmean gettoken gl gladder gladder_7 glim_l01 glim_l02 glim_l03 glim_l04 glim_l05 glim_l06 glim_l07 glim_l08 glim_l09 glim_l10 glim_l11 glim_l12 glim_lf glim_mu glim_nw1 glim_nw2 glim_nw3 glim_p glim_v1 glim_v2 glim_v3 glim_v4 glim_v5 glim_v6 glim_v7 glm glm_6 glm_p glm_sw glmpred glo glob globa global glogit glogit_8 glogit_p gmeans gnbre_lf gnbreg gnbreg_5 gnbreg_p gomp_lf gompe_sw gomper_p gompertz gompertzhet gomphet_glf gomphet_glf_sh gomphet_gp gomphet_ilf gomphet_ilf_sh gomphet_ip gphdot gphpen gphprint gprefs gprobi_p gprobit gprobit_8 gr gr7 gr_copy gr_current gr_db gr_describe gr_dir gr_draw gr_draw_replay gr_drop gr_edit gr_editviewopts gr_example gr_example2 gr_export gr_print gr_qscheme gr_query gr_read gr_rename gr_replay gr_save gr_set gr_setscheme gr_table gr_undo gr_use graph graph7 grebar greigen greigen_7 greigen_8 grmeanby grmeanby_7 gs_fileinfo gs_filetype gs_graphinfo gs_stat gsort gwood h hadimvo hareg hausman haver he heck_d2 heckma_p heckman heckp_lf heckpr_p heckprob hel help hereg hetpr_lf hetpr_p hetprob hettest hexdump hilite hist hist_7 histogram hlogit hlu hmeans hotel hotelling hprobit hreg hsearch icd9 icd9_ff icd9p iis impute imtest inbase include inf infi infil infile infix inp inpu input ins insheet insp inspe inspec inspect integ inten intreg intreg_7 intreg_p intrg2_ll intrg_ll intrg_ll2 ipolate iqreg ir irf irf_create irfm iri is_svy is_svysum isid istdize ivprob_1_lf ivprob_lf ivprobit ivprobit_p ivreg ivreg_footnote ivtob_1_lf ivtob_lf ivtobit ivtobit_p jackknife jacknife jknife jknife_6 jknife_8 jkstat joinby kalarma1 kap kap_3 kapmeier kappa kapwgt kdensity kdensity_7 keep ksm ksmirnov ktau kwallis l la lab labe label labelbook ladder levels levelsof leverage lfit lfit_p li lincom line linktest lis list lloghet_glf lloghet_glf_sh lloghet_gp lloghet_ilf lloghet_ilf_sh lloghet_ip llogi_sw llogis_p llogist llogistic llogistichet lnorm_lf lnorm_sw lnorma_p lnormal lnormalhet lnormhet_glf lnormhet_glf_sh lnormhet_gp lnormhet_ilf lnormhet_ilf_sh lnormhet_ip lnskew0 loadingplot loc loca local log logi logis_lf logistic logistic_p logit logit_estat logit_p loglogs logrank loneway lookfor lookup lowess lowess_7 lpredict lrecomp lroc lroc_7 lrtest ls lsens lsens_7 lsens_x lstat ltable ltable_7 ltriang lv lvr2plot lvr2plot_7 m ma mac macr macro makecns man manova manova_estat manova_p manovatest mantel mark markin markout marksample mat mat_capp mat_order mat_put_rr mat_rapp mata mata_clear mata_describe mata_drop mata_matdescribe mata_matsave mata_matuse mata_memory mata_mlib mata_mosave mata_rename mata_which matalabel matcproc matlist matname matr matri matrix matrix_input__dlg matstrik mcc mcci md0_ md1_ md1debug_ md2_ md2debug_ mds mds_estat mds_p mdsconfig mdslong mdsmat mdsshepard mdytoe mdytof me_derd mean means median memory memsize meqparse mer merg merge mfp mfx mhelp mhodds minbound mixed_ll mixed_ll_reparm mkassert mkdir mkmat mkspline ml ml_5 ml_adjs ml_bhhhs ml_c_d ml_check ml_clear ml_cnt ml_debug ml_defd ml_e0 ml_e0_bfgs ml_e0_cycle ml_e0_dfp ml_e0i ml_e1 ml_e1_bfgs ml_e1_bhhh ml_e1_cycle ml_e1_dfp ml_e2 ml_e2_cycle ml_ebfg0 ml_ebfr0 ml_ebfr1 ml_ebh0q ml_ebhh0 ml_ebhr0 ml_ebr0i ml_ecr0i ml_edfp0 ml_edfr0 ml_edfr1 ml_edr0i ml_eds ml_eer0i ml_egr0i ml_elf ml_elf_bfgs ml_elf_bhhh ml_elf_cycle ml_elf_dfp ml_elfi ml_elfs ml_enr0i ml_enrr0 ml_erdu0 ml_erdu0_bfgs ml_erdu0_bhhh ml_erdu0_bhhhq ml_erdu0_cycle ml_erdu0_dfp ml_erdu0_nrbfgs ml_exde ml_footnote ml_geqnr ml_grad0 ml_graph ml_hbhhh ml_hd0 ml_hold ml_init ml_inv ml_log ml_max ml_mlout ml_mlout_8 ml_model ml_nb0 ml_opt ml_p ml_plot ml_query ml_rdgrd ml_repor ml_s_e ml_score ml_searc ml_technique ml_unhold mleval mlf_ mlmatbysum mlmatsum mlog mlogi mlogit mlogit_footnote mlogit_p mlopts mlsum mlvecsum mnl0_ mor more mov move mprobit mprobit_lf mprobit_p mrdu0_ mrdu1_ mvdecode mvencode mvreg mvreg_estat n nbreg nbreg_al nbreg_lf nbreg_p nbreg_sw nestreg net newey newey_7 newey_p news nl nl_7 nl_9 nl_9_p nl_p nl_p_7 nlcom nlcom_p nlexp2 nlexp2_7 nlexp2a nlexp2a_7 nlexp3 nlexp3_7 nlgom3 nlgom3_7 nlgom4 nlgom4_7 nlinit nllog3 nllog3_7 nllog4 nllog4_7 nlog_rd nlogit nlogit_p nlogitgen nlogittree nlpred no nobreak noi nois noisi noisil noisily note notes notes_dlg nptrend numlabel numlist odbc old_ver olo olog ologi ologi_sw ologit ologit_p ologitp on one onew onewa oneway op_colnm op_comp op_diff op_inv op_str opr opro oprob oprob_sw oprobi oprobi_p oprobit oprobitp opts_exclusive order orthog orthpoly ou out outf outfi outfil outfile outs outsh outshe outshee outsheet ovtest pac pac_7 palette parse parse_dissim pause pca pca_8 pca_display pca_estat pca_p pca_rotate pcamat pchart pchart_7 pchi pchi_7 pcorr pctile pentium pergram pergram_7 permute permute_8 personal peto_st pkcollapse pkcross pkequiv pkexamine pkexamine_7 pkshape pksumm pksumm_7 pl plo plot plugin pnorm pnorm_7 poisgof poiss_lf poiss_sw poisso_p poisson poisson_estat post postclose postfile postutil pperron pr prais prais_e prais_e2 prais_p predict predictnl preserve print pro prob probi probit probit_estat probit_p proc_time procoverlay procrustes procrustes_estat procrustes_p profiler prog progr progra program prop proportion prtest prtesti pwcorr pwd q\\s qby qbys qchi qchi_7 qladder qladder_7 qnorm qnorm_7 qqplot qqplot_7 qreg qreg_c qreg_p qreg_sw qu quadchk quantile quantile_7 que quer query range ranksum ratio rchart rchart_7 rcof recast reclink recode reg reg3 reg3_p regdw regr regre regre_p2 regres regres_p regress regress_estat regriv_p remap ren rena renam rename renpfix repeat replace report reshape restore ret retu retur return rm rmdir robvar roccomp roccomp_7 roccomp_8 rocf_lf rocfit rocfit_8 rocgold rocplot rocplot_7 roctab roctab_7 rolling rologit rologit_p rot rota rotat rotate rotatemat rreg rreg_p ru run runtest rvfplot rvfplot_7 rvpplot rvpplot_7 sa safesum sample sampsi sav save savedresults saveold sc sca scal scala scalar scatter scm_mine sco scob_lf scob_p scobi_sw scobit scor score scoreplot scoreplot_help scree screeplot screeplot_help sdtest sdtesti se search separate seperate serrbar serrbar_7 serset set set_defaults sfrancia sh she shel shell shewhart shewhart_7 signestimationsample signrank signtest simul simul_7 simulate simulate_8 sktest sleep slogit slogit_d2 slogit_p smooth snapspan so sor sort spearman spikeplot spikeplot_7 spikeplt spline_x split sqreg sqreg_p sret sretu sretur sreturn ssc st st_ct st_hc st_hcd st_hcd_sh st_is st_issys st_note st_promo st_set st_show st_smpl st_subid stack statsby statsby_8 stbase stci stci_7 stcox stcox_estat stcox_fr stcox_fr_ll stcox_p stcox_sw stcoxkm stcoxkm_7 stcstat stcurv stcurve stcurve_7 stdes stem stepwise stereg stfill stgen stir stjoin stmc stmh stphplot stphplot_7 stphtest stphtest_7 stptime strate strate_7 streg streg_sw streset sts sts_7 stset stsplit stsum sttocc sttoct stvary stweib su suest suest_8 sum summ summa summar summari summariz summarize sunflower sureg survcurv survsum svar svar_p svmat svy svy_disp svy_dreg svy_est svy_est_7 svy_estat svy_get svy_gnbreg_p svy_head svy_header svy_heckman_p svy_heckprob_p svy_intreg_p svy_ivreg_p svy_logistic_p svy_logit_p svy_mlogit_p svy_nbreg_p svy_ologit_p svy_oprobit_p svy_poisson_p svy_probit_p svy_regress_p svy_sub svy_sub_7 svy_x svy_x_7 svy_x_p svydes svydes_8 svygen svygnbreg svyheckman svyheckprob svyintreg svyintreg_7 svyintrg svyivreg svylc svylog_p svylogit svymarkout svymarkout_8 svymean svymlog svymlogit svynbreg svyolog svyologit svyoprob svyoprobit svyopts svypois svypois_7 svypoisson svyprobit svyprobt svyprop svyprop_7 svyratio svyreg svyreg_p svyregress svyset svyset_7 svyset_8 svytab svytab_7 svytest svytotal sw sw_8 swcnreg swcox swereg swilk swlogis swlogit swologit swoprbt swpois swprobit swqreg swtobit swweib symmetry symmi symplot symplot_7 syntax sysdescribe sysdir sysuse szroeter ta tab tab1 tab2 tab_or tabd tabdi tabdis tabdisp tabi table tabodds tabodds_7 tabstat tabu tabul tabula tabulat tabulate te tempfile tempname tempvar tes test testnl testparm teststd tetrachoric time_it timer tis tob tobi tobit tobit_p tobit_sw token tokeni tokeniz tokenize tostring total translate translator transmap treat_ll treatr_p treatreg trim trnb_cons trnb_mean trpoiss_d2 trunc_ll truncr_p truncreg tsappend tset tsfill tsline tsline_ex tsreport tsrevar tsrline tsset tssmooth tsunab ttest ttesti tut_chk tut_wait tutorial tw tware_st two twoway twoway__fpfit_serset twoway__function_gen twoway__histogram_gen twoway__ipoint_serset twoway__ipoints_serset twoway__kdensity_gen twoway__lfit_serset twoway__normgen_gen twoway__pci_serset twoway__qfit_serset twoway__scatteri_serset twoway__sunflower_gen twoway_ksm_serset ty typ type typeof u unab unabbrev unabcmd update us use uselabel var var_mkcompanion var_p varbasic varfcast vargranger varirf varirf_add varirf_cgraph varirf_create varirf_ctable varirf_describe varirf_dir varirf_drop varirf_erase varirf_graph varirf_ograph varirf_rename varirf_set varirf_table varlist varlmar varnorm varsoc varstable varstable_w varstable_w2 varwle vce vec vec_fevd vec_mkphi vec_p vec_p_w vecirf_create veclmar veclmar_w vecnorm vecnorm_w vecrank vecstable verinst vers versi versio version view viewsource vif vwls wdatetof webdescribe webseek webuse weib1_lf weib2_lf weib_lf weib_lf0 weibhet_glf weibhet_glf_sh weibhet_glfa weibhet_glfa_sh weibhet_gp weibhet_ilf weibhet_ilf_sh weibhet_ilfa weibhet_ilfa_sh weibhet_ip weibu_sw weibul_p weibull weibull_c weibull_s weibullhet wh whelp whi which whil while wilc_st wilcoxon win wind windo window winexec wntestb wntestb_7 wntestq xchart xchart_7 xcorr xcorr_7 xi xi_6 xmlsav xmlsave xmluse xpose xsh xshe xshel xshell xt_iis xt_tis xtab_p xtabond xtbin_p xtclog xtcloglog xtcloglog_8 xtcloglog_d2 xtcloglog_pa_p xtcloglog_re_p xtcnt_p xtcorr xtdata xtdes xtfront_p xtfrontier xtgee xtgee_elink xtgee_estat xtgee_makeivar xtgee_p xtgee_plink xtgls xtgls_p xthaus xthausman xtht_p xthtaylor xtile xtint_p xtintreg xtintreg_8 xtintreg_d2 xtintreg_p xtivp_1 xtivp_2 xtivreg xtline xtline_ex xtlogit xtlogit_8 xtlogit_d2 xtlogit_fe_p xtlogit_pa_p xtlogit_re_p xtmixed xtmixed_estat xtmixed_p xtnb_fe xtnb_lf xtnbreg xtnbreg_pa_p xtnbreg_refe_p xtpcse xtpcse_p xtpois xtpoisson xtpoisson_d2 xtpoisson_pa_p xtpoisson_refe_p xtpred xtprobit xtprobit_8 xtprobit_d2 xtprobit_re_p xtps_fe xtps_lf xtps_ren xtps_ren_8 xtrar_p xtrc xtrc_p xtrchh xtrefe_p xtreg xtreg_be xtreg_fe xtreg_ml xtreg_pa_p xtreg_re xtregar xtrere_p xtset xtsf_ll xtsf_llti xtsum xttab xttest0 xttobit xttobit_8 xttobit_p xttrans yx yxview__barlike_draw yxview_area_draw yxview_bar_draw yxview_dot_draw yxview_dropline_draw yxview_function_draw yxview_iarrow_draw yxview_ilabels_draw yxview_normal_draw yxview_pcarrow_draw yxview_pcbarrow_draw yxview_pccapsym_draw yxview_pcscatter_draw yxview_pcspike_draw yxview_rarea_draw yxview_rbar_draw yxview_rbarm_draw yxview_rcap_draw yxview_rcapsym_draw yxview_rconnected_draw yxview_rline_draw yxview_rscatter_draw yxview_rspike_draw yxview_spike_draw yxview_sunflower_draw zap_s zinb zinb_llf zinb_plf zip zip_llf zip_p zip_plf zt_ct_5 zt_hc_5 zt_hcd_5 zt_is_5 zt_iss_5 zt_sho_5 zt_smp_5 ztbase_5 ztcox_5 ztdes_5 ztereg_5 ztfill_5 ztgen_5 ztir_5 ztjoin_5 ztnb ztnb_p ztp ztp_p zts_5 ztset_5 ztspli_5 ztsum_5 zttoct_5 ztvary_5 ztweib_5",contains:[{className:"label",variants:[{begin:"\\$\\{?[a-zA-Z0-9_]+\\}?"},{begin:"`[a-zA-Z0-9_]+'"}]},{className:"string",variants:[{begin:'`"[^\r\n]*?"\''},{begin:'"[^\r\n"]*"'}]},{className:"literal",variants:[{begin:"\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\(|$)"}]},a.COMMENT("^[ 	]*\\*.*$",!1),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]}}),a.registerLanguage("step21",function(a){var b="[A-Z_][A-Z0-9_.]*",c="END-ISO-10303-21;",d={literal:"",built_in:"",keyword:"HEADER ENDSEC DATA"},e={className:"preprocessor",begin:"ISO-10303-21;",relevance:10},f=[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.COMMENT("/\\*\\*!","\\*/"),a.C_NUMBER_MODE,a.inherit(a.APOS_STRING_MODE,{illegal:null}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"'",end:"'"},{className:"label",variants:[{begin:"#",end:"\\d+",illegal:"\\W"}]}];return{aliases:["p21","step","stp"],case_insensitive:!0,lexemes:b,keywords:d,contains:[{className:"preprocessor",begin:c,relevance:10},e].concat(f)}}),a.registerLanguage("stylus",function(a){var b={className:"variable",begin:"\\$"+a.IDENT_RE},c={className:"hexcolor",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})",relevance:10},d=["charset","css","debug","extend","font-face","for","import","include","media","mixin","page","warn","while"],e=["after","before","first-letter","first-line","active","first-child","focus","hover","lang","link","visited"],f=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],g="[\\.\\s\\n\\[\\:,]",h=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-variant-ligatures","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"],i=["\\{","\\}","\\?","(\\bReturn\\b)","(\\bEnd\\b)","(\\bend\\b)",";","#\\s","\\*\\s","===\\s","\\|","%"];
-invalidCsv:"Tiedostoa ei voitu käsitellä, oliko se CSV-muodossa?",invalidJson:"Tiedostoa ei voitu käsitellä, oliko se JSON-muodossa?",jsonNotArray:"Tiedosto ei sisältänyt taulukkoa, lopetetaan."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("fr",{aggregate:{label:"éléments"},groupPanel:{description:"Faites glisser une en-tête de colonne ici pour créer un groupe de colonnes."},search:{placeholder:"Recherche...",showingItems:"Affichage des éléments :",selectedItems:"Éléments sélectionnés :",totalItems:"Nombre total d'éléments:",size:"Taille de page:",first:"Première page",next:"Page Suivante",previous:"Page précédente",last:"Dernière page"},menu:{text:"Choisir des colonnes :"},sort:{ascending:"Trier par ordre croissant",descending:"Trier par ordre décroissant",remove:"Enlever le tri"},column:{hide:"Cacher la colonne"},aggregation:{count:"lignes totales: ",sum:"total: ",avg:"moy: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Épingler à gauche",pinRight:"Épingler à droite",unpin:"Détacher"},gridMenu:{columns:"Colonnes:",importerTitle:"Importer un fichier",exporterAllAsCsv:"Exporter toutes les données en CSV",exporterVisibleAsCsv:"Exporter les données visibles en CSV",exporterSelectedAsCsv:"Exporter les données sélectionnées en CSV",exporterAllAsPdf:"Exporter toutes les données en PDF",exporterVisibleAsPdf:"Exporter les données visibles en PDF",exporterSelectedAsPdf:"Exporter les données sélectionnées en PDF",clearAllFilters:"Nettoyez tous les filtres"},importer:{noHeaders:"Impossible de déterminer le nom des colonnes, le fichier possède-t-il une en-tête ?",noObjects:"Aucun objet trouvé, le fichier possède-t-il des données autres que l'en-tête ?",invalidCsv:"Le fichier n'a pas pu être traité, le CSV est-il valide ?",invalidJson:"Le fichier n'a pas pu être traité, le JSON est-il valide ?",jsonNotArray:"Le fichier JSON importé doit contenir un tableau, abandon."},pagination:{sizes:"éléments par page",totalItems:"éléments",of:"sur"},grouping:{group:"Grouper",ungroup:"Dégrouper",aggregate_count:"Agg: Compte",aggregate_sum:"Agg: Somme",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Moy",aggregate_remove:"Agg: Retirer"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("he",{aggregate:{label:"items"},groupPanel:{description:"גרור עמודה לכאן ושחרר בכדי לקבץ עמודה זו."},search:{placeholder:"חפש...",showingItems:"מציג:",selectedItems:'סה"כ נבחרו:',totalItems:'סה"כ רשומות:',size:"תוצאות בדף:",first:"דף ראשון",next:"דף הבא",previous:"דף קודם",last:"דף אחרון"},menu:{text:"בחר עמודות:"},sort:{ascending:"סדר עולה",descending:"סדר יורד",remove:"בטל"},column:{hide:"טור הסתר"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clean all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("hy",{aggregate:{label:"տվյալներ"},groupPanel:{description:"Ըստ սյան խմբավորելու համար քաշեք և գցեք վերնագիրն այստեղ։"},search:{placeholder:"Փնտրում...",showingItems:"Ցուցադրված տվյալներ՝",selectedItems:"Ընտրված:",totalItems:"Ընդամենը՝",size:"Տողերի քանակը էջում՝",first:"Առաջին էջ",next:"Հաջորդ էջ",previous:"Նախորդ էջ",last:"Վերջին էջ"},menu:{text:"Ընտրել սյուները:"},sort:{ascending:"Աճման կարգով",descending:"Նվազման կարգով",remove:"Հանել "},column:{hide:"Թաքցնել սյունը"},aggregation:{count:"ընդամենը տող՝ ",sum:"ընդամենը՝ ",avg:"միջին՝ ",min:"մին՝ ",max:"մաքս՝ "},pinning:{pinLeft:"Կպցնել ձախ կողմում",pinRight:"Կպցնել աջ կողմում",unpin:"Արձակել"},gridMenu:{columns:"Սյուներ:",importerTitle:"Ներմուծել ֆայլ",exporterAllAsCsv:"Արտահանել ամբողջը CSV",exporterVisibleAsCsv:"Արտահանել երևացող տվյալները CSV",exporterSelectedAsCsv:"Արտահանել ընտրված տվյալները CSV",exporterAllAsPdf:"Արտահանել PDF",exporterVisibleAsPdf:"Արտահանել երևացող տվյալները PDF",exporterSelectedAsPdf:"Արտահանել ընտրված տվյալները PDF",clearAllFilters:"Մաքրել բոլոր ֆիլտրերը"},importer:{noHeaders:"Հնարավոր չեղավ որոշել սյան վերնագրերը։ Արդյո՞ք ֆայլը ունի վերնագրեր։",noObjects:"Հնարավոր չեղավ կարդալ տվյալները։ Արդյո՞ք ֆայլում կան տվյալներ։",invalidCsv:"Հնարավոր չեղավ մշակել ֆայլը։ Արդյո՞ք այն վավեր CSV է։",invalidJson:"Հնարավոր չեղավ մշակել ֆայլը։ Արդյո՞ք այն վավեր Json է։",jsonNotArray:"Ներմուծված json ֆայլը պետք է պարունակի զանգված, կասեցվում է։"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("it",{aggregate:{label:"elementi"},groupPanel:{description:"Trascina un'intestazione all'interno del gruppo della colonna."},search:{placeholder:"Ricerca...",showingItems:"Mostra:",selectedItems:"Selezionati:",totalItems:"Totali:",size:"Tot Pagine:",first:"Prima",next:"Prossima",previous:"Precedente",last:"Ultima"},menu:{text:"Scegli le colonne:"},sort:{ascending:"Asc.",descending:"Desc.",remove:"Annulla ordinamento"},column:{hide:"Nascondi"},aggregation:{count:"righe totali: ",sum:"tot: ",avg:"media: ",min:"minimo: ",max:"massimo: "},pinning:{pinLeft:"Blocca a sx",pinRight:"Blocca a dx",unpin:"Blocca in alto"},gridMenu:{columns:"Colonne:",importerTitle:"Importa",exporterAllAsCsv:"Esporta tutti i dati in CSV",exporterVisibleAsCsv:"Esporta i dati visibili in CSV",exporterSelectedAsCsv:"Esporta i dati selezionati in CSV",exporterAllAsPdf:"Esporta tutti i dati in PDF",exporterVisibleAsPdf:"Esporta i dati visibili in PDF",exporterSelectedAsPdf:"Esporta i dati selezionati in PDF",clearAllFilters:"Pulire tutti i filtri"},importer:{noHeaders:"Impossibile reperire i nomi delle colonne, sicuro che siano indicati all'interno del file?",noObjects:"Impossibile reperire gli oggetti, sicuro che siano indicati all'interno del file?",invalidCsv:"Impossibile elaborare il file, sicuro che sia un CSV?",invalidJson:"Impossibile elaborare il file, sicuro che sia un JSON valido?",jsonNotArray:"Errore! Il file JSON da importare deve contenere un array."},grouping:{group:"Raggruppa",ungroup:"Separa",aggregate_count:"Agg: N. Elem.",aggregate_sum:"Agg: Somma",aggregate_max:"Agg: Massimo",aggregate_min:"Agg: Minimo",aggregate_avg:"Agg: Media",aggregate_remove:"Agg: Rimuovi"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ja",{aggregate:{label:"項目"},groupPanel:{description:"ここに列ヘッダをドラッグアンドドロップして、その列でグループ化します。"},search:{placeholder:"検索...",showingItems:"表示中の項目:",selectedItems:"選択した項目:",totalItems:"項目の総数:",size:"ページサイズ:",first:"最初のページ",next:"次のページ",previous:"前のページ",last:"前のページ"},menu:{text:"列の選択:"},sort:{ascending:"昇順に並べ替え",descending:"降順に並べ替え",remove:"並べ替えの解除"},column:{hide:"列の非表示"},aggregation:{count:"合計行数: ",sum:"合計: ",avg:"平均: ",min:"最小: ",max:"最大: "},pinning:{pinLeft:"左に固定",pinRight:"右に固定",unpin:"固定解除"},gridMenu:{columns:"列:",importerTitle:"ファイルのインポート",exporterAllAsCsv:"すべてのデータをCSV形式でエクスポート",exporterVisibleAsCsv:"表示中のデータをCSV形式でエクスポート",exporterSelectedAsCsv:"選択したデータをCSV形式でエクスポート",exporterAllAsPdf:"すべてのデータをPDF形式でエクスポート",exporterVisibleAsPdf:"表示中のデータをPDF形式でエクスポート",exporterSelectedAsPdf:"選択したデータをPDF形式でエクスポート",clearAllFilters:"すべてのフィルタを清掃してください"},importer:{noHeaders:"列名を取得できません。ファイルにヘッダが含まれていることを確認してください。",noObjects:"オブジェクトを取得できません。ファイルにヘッダ以外のデータが含まれていることを確認してください。",invalidCsv:"ファイルを処理できません。ファイルが有効なCSV形式であることを確認してください。",invalidJson:"ファイルを処理できません。ファイルが有効なJSON形式であることを確認してください。",jsonNotArray:"インポートしたJSONファイルには配列が含まれている必要があります。処理を中止します。"},pagination:{sizes:"項目/ページ",totalItems:"項目"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ko",{aggregate:{label:"아이템"},groupPanel:{description:"컬럼으로 그룹핑하기 위해서는 컬럼 헤더를 끌어 떨어뜨려 주세요."},search:{placeholder:"검색...",showingItems:"항목 보여주기:",selectedItems:"선택 항목:",totalItems:"전체 항목:",size:"페이지 크기:",first:"첫번째 페이지",next:"다음 페이지",previous:"이전 페이지",last:"마지막 페이지"},menu:{text:"컬럼을 선택하세요:"},sort:{ascending:"오름차순 정렬",descending:"내림차순 정렬",remove:"소팅 제거"},column:{hide:"컬럼 제거"},aggregation:{count:"전체 갯수: ",sum:"전체: ",avg:"평균: ",min:"최소: ",max:"최대: "},pinning:{pinLeft:"왼쪽 핀",pinRight:"오른쪽 핀",unpin:"핀 제거"},gridMenu:{columns:"컬럼:",importerTitle:"파일 가져오기",exporterAllAsCsv:"csv로 모든 데이터 내보내기",exporterVisibleAsCsv:"csv로 보이는 데이터 내보내기",exporterSelectedAsCsv:"csv로 선택된 데이터 내보내기",exporterAllAsPdf:"pdf로 모든 데이터 내보내기",exporterVisibleAsPdf:"pdf로 보이는 데이터 내보내기",exporterSelectedAsPdf:"pdf로 선택 데이터 내보내기",clearAllFilters:"모든 필터를 청소"},importer:{noHeaders:"컬럼명이 지정되어 있지 않습니다. 파일에 헤더가 명시되어 있는지 확인해 주세요.",noObjects:"데이터가 지정되어 있지 않습니다. 데이터가 파일에 있는지 확인해 주세요.",invalidCsv:"파일을 처리할 수 없습니다. 올바른 csv인지 확인해 주세요.",invalidJson:"파일을 처리할 수 없습니다. 올바른 json인지 확인해 주세요.",jsonNotArray:"json 파일은 배열을 포함해야 합니다."},pagination:{sizes:"페이지당 항목",totalItems:"전체 항목"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("nl",{aggregate:{label:"items"},groupPanel:{description:"Sleep hier een kolomnaam heen om op te groeperen."},search:{placeholder:"Zoeken...",showingItems:"Getoonde items:",selectedItems:"Geselecteerde items:",totalItems:"Totaal aantal items:",size:"Items per pagina:",first:"Eerste pagina",next:"Volgende pagina",previous:"Vorige pagina",last:"Laatste pagina"},menu:{text:"Kies kolommen:"},sort:{ascending:"Sorteer oplopend",descending:"Sorteer aflopend",remove:"Verwijder sortering"},column:{hide:"Verberg kolom"},aggregation:{count:"Aantal rijen: ",sum:"Som: ",avg:"Gemiddelde: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Zet links vast",pinRight:"Zet rechts vast",unpin:"Maak los"},gridMenu:{columns:"Kolommen:",importerTitle:"Importeer bestand",exporterAllAsCsv:"Exporteer alle data als csv",exporterVisibleAsCsv:"Exporteer zichtbare data als csv",exporterSelectedAsCsv:"Exporteer geselecteerde data als csv",exporterAllAsPdf:"Exporteer alle data als pdf",exporterVisibleAsPdf:"Exporteer zichtbare data als pdf",exporterSelectedAsPdf:"Exporteer geselecteerde data als pdf",clearAllFilters:"Reinig alle filters"},importer:{noHeaders:"Kolomnamen kunnen niet worden afgeleid. Heeft het bestand een header?",noObjects:"Objecten kunnen niet worden afgeleid. Bevat het bestand data naast de headers?",invalidCsv:"Het bestand kan niet verwerkt worden. Is het een valide csv bestand?",invalidJson:"Het bestand kan niet verwerkt worden. Is het valide json?",jsonNotArray:"Het json bestand moet een array bevatten. De actie wordt geannuleerd."},pagination:{sizes:"items per pagina",totalItems:"items",of:"van de"},grouping:{group:"Groepeer",ungroup:"Groepering opheffen",aggregate_count:"Agg: Aantal",aggregate_sum:"Agg: Som",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Gem",aggregate_remove:"Agg: Verwijder"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("pt-br",{aggregate:{label:"itens"},groupPanel:{description:"Arraste e solte uma coluna aqui para agrupar por essa coluna"},search:{placeholder:"Procurar...",showingItems:"Mostrando os Itens:",selectedItems:"Items Selecionados:",totalItems:"Total de Itens:",size:"Tamanho da Página:",first:"Primeira Página",next:"Próxima Página",previous:"Página Anterior",last:"Última Página"},menu:{text:"Selecione as colunas:"},sort:{ascending:"Ordenar Ascendente",descending:"Ordenar Descendente",remove:"Remover Ordenação"},column:{hide:"Esconder coluna"},aggregation:{count:"total de linhas: ",sum:"total: ",avg:"med: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Fixar Esquerda",pinRight:"Fixar Direita",unpin:"Desprender"},gridMenu:{columns:"Colunas:",importerTitle:"Importar arquivo",exporterAllAsCsv:"Exportar todos os dados como csv",exporterVisibleAsCsv:"Exportar dados visíveis como csv",exporterSelectedAsCsv:"Exportar dados selecionados como csv",exporterAllAsPdf:"Exportar todos os dados como pdf",exporterVisibleAsPdf:"Exportar dados visíveis como pdf",exporterSelectedAsPdf:"Exportar dados selecionados como pdf",clearAllFilters:"Limpar todos os filtros"},importer:{noHeaders:"Nomes de colunas não puderam ser derivados. O arquivo tem um cabeçalho?",noObjects:"Objetos não puderam ser derivados. Havia dados no arquivo, além dos cabeçalhos?",invalidCsv:"Arquivo não pode ser processado. É um CSV válido?",invalidJson:"Arquivo não pode ser processado. É um Json válido?",jsonNotArray:"Arquivo json importado tem que conter um array. Abortando."},pagination:{sizes:"itens por página",totalItems:"itens"},grouping:{group:"Agrupar",ungroup:"Desagrupar",aggregate_count:"Agr: Contar",aggregate_sum:"Agr: Soma",aggregate_max:"Agr: Max",aggregate_min:"Agr: Min",aggregate_avg:"Agr: Med",aggregate_remove:"Agr: Remover"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("pt",{aggregate:{label:"itens"},groupPanel:{description:"Arraste e solte uma coluna aqui para agrupar por essa coluna"},search:{placeholder:"Procurar...",showingItems:"Mostrando os Itens:",selectedItems:"Itens Selecionados:",totalItems:"Total de Itens:",size:"Tamanho da Página:",first:"Primeira Página",next:"Próxima Página",previous:"Página Anterior",last:"Última Página"},menu:{text:"Selecione as colunas:"},sort:{ascending:"Ordenar Ascendente",descending:"Ordenar Descendente",remove:"Remover Ordenação"},column:{hide:"Esconder coluna"},aggregation:{count:"total de linhas: ",sum:"total: ",avg:"med: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Fixar Esquerda",pinRight:"Fixar Direita",unpin:"Desprender"},gridMenu:{columns:"Colunas:",importerTitle:"Importar ficheiro",exporterAllAsCsv:"Exportar todos os dados como csv",exporterVisibleAsCsv:"Exportar dados visíveis como csv",exporterSelectedAsCsv:"Exportar dados selecionados como csv",exporterAllAsPdf:"Exportar todos os dados como pdf",exporterVisibleAsPdf:"Exportar dados visíveis como pdf",exporterSelectedAsPdf:"Exportar dados selecionados como pdf",clearAllFilters:"Limpar todos os filtros"},importer:{noHeaders:"Nomes de colunas não puderam ser derivados. O ficheiro tem um cabeçalho?",noObjects:"Objetos não puderam ser derivados. Havia dados no ficheiro, além dos cabeçalhos?",invalidCsv:"Ficheiro não pode ser processado. É um CSV válido?",invalidJson:"Ficheiro não pode ser processado. É um Json válido?",jsonNotArray:"Ficheiro json importado tem que conter um array. Interrompendo."},pagination:{sizes:"itens por página",totalItems:"itens",of:"de"},grouping:{group:"Agrupar",ungroup:"Desagrupar",aggregate_count:"Agr: Contar",aggregate_sum:"Agr: Soma",aggregate_max:"Agr: Max",aggregate_min:"Agr: Min",aggregate_avg:"Agr: Med",aggregate_remove:"Agr: Remover"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ru",{aggregate:{label:"элементы"},groupPanel:{description:"Для группировки по столбцу перетащите сюда его название."},search:{placeholder:"Поиск...",showingItems:"Показать элементы:",selectedItems:"Выбранные элементы:",totalItems:"Всего элементов:",size:"Размер страницы:",first:"Первая страница",next:"Следующая страница",previous:"Предыдущая страница",last:"Последняя страница"},menu:{text:"Выбрать столбцы:"},sort:{ascending:"По возрастанию",descending:"По убыванию",remove:"Убрать сортировку"},column:{hide:"Спрятать столбец"},aggregation:{count:"всего строк: ",sum:"итого: ",avg:"среднее: ",min:"мин: ",max:"макс: "},pinning:{pinLeft:"Закрепить слева",pinRight:"Закрепить справа",unpin:"Открепить"},gridMenu:{columns:"Столбцы:",importerTitle:"Import file",exporterAllAsCsv:"Экспортировать всё в CSV",exporterVisibleAsCsv:"Экспортировать видимые данные в CSV",exporterSelectedAsCsv:"Экспортировать выбранные данные в CSV",exporterAllAsPdf:"Экспортировать всё в PDF",exporterVisibleAsPdf:"Экспортировать видимые данные в PDF",exporterSelectedAsPdf:"Экспортировать выбранные данные в PDF",clearAllFilters:"Очистите все фильтры"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("sk",{aggregate:{label:"items"},groupPanel:{description:"Pretiahni sem názov stĺpca pre zoskupenie podľa toho stĺpca."},search:{placeholder:"Hľadaj...",showingItems:"Zobrazujem položky:",selectedItems:"Vybraté položky:",totalItems:"Počet položiek:",size:"Počet:",first:"Prvá strana",next:"Ďalšia strana",previous:"Predchádzajúca strana",last:"Posledná strana"},menu:{text:"Vyberte stĺpce:"},sort:{ascending:"Zotriediť vzostupne",descending:"Zotriediť zostupne",remove:"Vymazať triedenie"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("sv",{aggregate:{label:"Artiklar"},groupPanel:{description:"Dra en kolumnrubrik hit och släpp den för att gruppera efter den kolumnen."},search:{placeholder:"Sök...",showingItems:"Visar artiklar:",selectedItems:"Valda artiklar:",totalItems:"Antal artiklar:",size:"Sidstorlek:",first:"Första sidan",next:"Nästa sida",previous:"Föregående sida",last:"Sista sidan"},menu:{text:"Välj kolumner:"},sort:{ascending:"Sortera stigande",descending:"Sortera fallande",remove:"Inaktivera sortering"},column:{hide:"Göm kolumn"},aggregation:{count:"Antal rader: ",sum:"Summa: ",avg:"Genomsnitt: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Fäst vänster",pinRight:"Fäst höger",unpin:"Lösgör"},gridMenu:{columns:"Kolumner:",importerTitle:"Importera fil",exporterAllAsCsv:"Exportera all data som CSV",exporterVisibleAsCsv:"Exportera synlig data som CSV",exporterSelectedAsCsv:"Exportera markerad data som CSV",exporterAllAsPdf:"Exportera all data som PDF",exporterVisibleAsPdf:"Exportera synlig data som PDF",exporterSelectedAsPdf:"Exportera markerad data som PDF",clearAllFilters:"Rengör alla filter"},importer:{noHeaders:"Kolumnnamn kunde inte härledas. Har filen ett sidhuvud?",noObjects:"Objekt kunde inte härledas. Har filen data undantaget sidhuvud?",invalidCsv:"Filen kunde inte behandlas, är den en giltig CSV?",invalidJson:"Filen kunde inte behandlas, är den en giltig JSON?",jsonNotArray:"Importerad JSON-fil måste innehålla ett fält. Import avbruten."},pagination:{sizes:"Artiklar per sida",totalItems:"Artiklar"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ta",{aggregate:{label:"உருப்படிகள்"},groupPanel:{description:"ஒரு பத்தியை குழுவாக அமைக்க அப்பத்தியின் தலைப்பை இங்கே  இழுத்து வரவும் "},search:{placeholder:"தேடல் ...",showingItems:"உருப்படிகளை காண்பித்தல்:",selectedItems:"தேர்ந்தெடுக்கப்பட்ட  உருப்படிகள்:",totalItems:"மொத்த உருப்படிகள்:",size:"பக்க அளவு: ",first:"முதல் பக்கம்",next:"அடுத்த பக்கம்",previous:"முந்தைய பக்கம் ",last:"இறுதி பக்கம்"},menu:{text:"பத்திகளை தேர்ந்தெடு:"},sort:{ascending:"மேலிருந்து கீழாக",descending:"கீழிருந்து மேலாக",remove:"வரிசையை நீக்கு"},column:{hide:"பத்தியை மறைத்து வை "},aggregation:{count:"மொத்த வரிகள்:",sum:"மொத்தம்: ",avg:"சராசரி: ",min:"குறைந்தபட்ச: ",max:"அதிகபட்ச: "},pinning:{pinLeft:"இடதுபுறமாக தைக்க ",pinRight:"வலதுபுறமாக தைக்க",unpin:"பிரி"},gridMenu:{columns:"பத்திகள்:",importerTitle:"கோப்பு : படித்தல்",exporterAllAsCsv:"எல்லா தரவுகளையும் கோப்பாக்கு: csv",exporterVisibleAsCsv:"இருக்கும் தரவுகளை கோப்பாக்கு: csv",exporterSelectedAsCsv:"தேர்ந்தெடுத்த தரவுகளை கோப்பாக்கு: csv",exporterAllAsPdf:"எல்லா தரவுகளையும் கோப்பாக்கு: pdf",exporterVisibleAsPdf:"இருக்கும் தரவுகளை கோப்பாக்கு: pdf",exporterSelectedAsPdf:"தேர்ந்தெடுத்த தரவுகளை கோப்பாக்கு: pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"பத்தியின் தலைப்புகளை பெற இயலவில்லை, கோப்பிற்கு தலைப்பு உள்ளதா?",noObjects:"இலக்குகளை உருவாக்க முடியவில்லை, கோப்பில் தலைப்புகளை தவிர தரவு ஏதேனும் உள்ளதா? ",invalidCsv:"சரிவர நடைமுறை படுத்த இயலவில்லை, கோப்பு சரிதானா? - csv",invalidJson:"சரிவர நடைமுறை படுத்த இயலவில்லை, கோப்பு சரிதானா? - json",jsonNotArray:"படித்த கோப்பில் வரிசைகள் உள்ளது, நடைமுறை ரத்து செய் : json"},pagination:{sizes:"உருப்படிகள் / பக்கம்",totalItems:"உருப்படிகள் "},grouping:{group:"குழு",ungroup:"பிரி",aggregate_count:"மதிப்பீட்டு : எண்ணு",aggregate_sum:"மதிப்பீட்டு : கூட்டல்",aggregate_max:"மதிப்பீட்டு : அதிகபட்சம்",aggregate_min:"மதிப்பீட்டு : குறைந்தபட்சம்",aggregate_avg:"மதிப்பீட்டு : சராசரி",aggregate_remove:"மதிப்பீட்டு : நீக்கு"}}),a}])}])}(),function(){var a=["uiT","uiTranslate"],b=["t","uiTranslate"],c=angular.module("ui.grid.i18n");c.constant("i18nConstants",{MISSING:"[MISSING]",UPDATE_EVENT:"$uiI18n",LOCALE_DIRECTIVE_ALIAS:"uiI18n",DEFAULT_LANG:"en"}),c.service("i18nService",["$log","i18nConstants","$rootScope",function(a,b,c){var d={_langs:{},current:null,get:function(a){return this._langs[a.toLowerCase()]},add:function(a,b){var c=a.toLowerCase();this._langs[c]||(this._langs[c]={}),angular.extend(this._langs[c],b)},getAllLangs:function(){var a=[];if(!this._langs)return a;for(var b in this._langs)a.push(b);return a},setCurrent:function(a){this.current=a.toLowerCase()},getCurrentLang:function(){return this.current}},e={add:function(a,b){"object"==typeof a?angular.forEach(a,function(a){a&&d.add(a,b)}):d.add(a,b)},getAllLangs:function(){return d.getAllLangs()},get:function(a){var b=a?a:e.getCurrentLang();return d.get(b)},getSafeText:function(a,c){var f=c?c:e.getCurrentLang(),g=d.get(f);if(!g)return b.MISSING;for(var h=a.split("."),i=g,j=0;j<h.length;++j){if(void 0===i[h[j]]||null===i[h[j]])return b.MISSING;i=i[h[j]]}return i},setCurrentLang:function(a){a&&(d.setCurrent(a),c.$broadcast(b.UPDATE_EVENT))},getCurrentLang:function(){var a=d.getCurrentLang();return a||(a=b.DEFAULT_LANG,d.setCurrent(a)),a}};return e}]);var d=function(a,b){return{compile:function(){return{pre:function(c,d,e){var f=b.LOCALE_DIRECTIVE_ALIAS,g=c.$eval(e[f]);g?c.$watch(e[f],function(){a.setCurrentLang(g)}):e.$$observers&&e.$observe(f,function(){a.setCurrentLang(e[f]||b.DEFAULT_LANG)})}}}}};c.directive("uiI18n",["i18nService","i18nConstants",d]);var e=function(b,c,d){return{restrict:"EA",compile:function(){return{pre:function(e,f,g){var h,i=a[0],j=a[1],k=g[i]||g[j]||f.html(),l=d.MISSING+k;if(g.$$observers){var m=g[i]?i:j;h=g.$observe(m,function(a){a&&f.html(b(a)(c.getCurrentLang())||l)})}var n=b(k),o=e.$on(d.UPDATE_EVENT,function(a){h?h(g[i]||g[j]):f.html(n(c.get())||l)});e.$on("$destroy",o),f.html(n(c.get())||l)}}}}};angular.forEach(a,function(a){c.directive(a,["$parse","i18nService","i18nConstants",e])});var f=function(a,b,c){return function(d){var e=a(d);return e(b.get())||c.MISSING+d}};angular.forEach(b,function(a){c.filter(a,["$parse","i18nService","i18nConstants",f])})}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("zh-cn",{headerCell:{aria:{defaultFilterLabel:"列过滤器",removeFilter:"移除过滤器",columnMenuButtonLabel:"列菜单"},priority:"优先级:",filterLabel:"列过滤器: "},aggregate:{label:"行"},groupPanel:{description:"拖曳表头到此处进行分组"},search:{placeholder:"查找",showingItems:"已显示行数：",selectedItems:"已选择行数：",totalItems:"总行数：",size:"每页显示行数：",first:"首页",next:"下一页",previous:"上一页",last:"末页"},menu:{text:"选择列："},sort:{ascending:"升序",descending:"降序",none:"无序",remove:"取消排序"},column:{hide:"隐藏列"},aggregation:{count:"计数：",sum:"求和：",avg:"均值：",min:"最小值：",max:"最大值："},pinning:{pinLeft:"左侧固定",pinRight:"右侧固定",unpin:"取消固定"},columnMenu:{close:"关闭"},gridMenu:{aria:{buttonLabel:"表格菜单"},columns:"列：",importerTitle:"导入文件",exporterAllAsCsv:"导出全部数据到CSV",exporterVisibleAsCsv:"导出可见数据到CSV",exporterSelectedAsCsv:"导出已选数据到CSV",exporterAllAsPdf:"导出全部数据到PDF",exporterVisibleAsPdf:"导出可见数据到PDF",exporterSelectedAsPdf:"导出已选数据到PDF",clearAllFilters:"清除所有过滤器"},importer:{noHeaders:"无法获取列名，确定文件包含表头？",noObjects:"无法获取数据，确定文件包含数据？",invalidCsv:"无法处理文件，确定是合法的CSV文件？",invalidJson:"无法处理文件，确定是合法的JSON文件？",jsonNotArray:"导入的文件不是JSON数组！"},pagination:{aria:{pageToFirst:"第一页",pageBack:"上一页",pageSelected:"当前页",pageForward:"下一页",pageToLast:"最后一页"},sizes:"行每页",totalItems:"行",through:"至",of:"共"},grouping:{group:"分组",ungroup:"取消分组",aggregate_count:"合计: 计数",aggregate_sum:"合计: 求和",aggregate_max:"合计: 最大",aggregate_min:"合计: 最小",aggregate_avg:"合计: 平均",aggregate_remove:"合计: 移除"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("zh-tw",{aggregate:{label:"行"},groupPanel:{description:"拖曳表頭到此處進行分組"},search:{placeholder:"查找",showingItems:"已顯示行數：",selectedItems:"已選擇行數：",totalItems:"總行數：",size:"每頁顯示行數：",first:"首頁",next:"下壹頁",previous:"上壹頁",last:"末頁"},menu:{text:"選擇列："},sort:{ascending:"升序",descending:"降序",remove:"取消排序"},column:{hide:"隱藏列"},aggregation:{count:"計數：",sum:"求和：",avg:"均值：",min:"最小值：",max:"最大值："},pinning:{pinLeft:"左側固定",pinRight:"右側固定",unpin:"取消固定"},gridMenu:{columns:"列：",importerTitle:"導入文件",exporterAllAsCsv:"導出全部數據到CSV",exporterVisibleAsCsv:"導出可見數據到CSV",exporterSelectedAsCsv:"導出已選數據到CSV",exporterAllAsPdf:"導出全部數據到PDF",exporterVisibleAsPdf:"導出可見數據到PDF",exporterSelectedAsPdf:"導出已選數據到PDF",clearAllFilters:"清除所有过滤器"},importer:{noHeaders:"無法獲取列名，確定文件包含表頭？",noObjects:"無法獲取數據，確定文件包含數據？",invalidCsv:"無法處理文件，確定是合法的CSV文件？",invalidJson:"無法處理文件，確定是合法的JSON文件？",jsonNotArray:"導入的文件不是JSON數組！"},pagination:{sizes:"行每頁",totalItems:"行"}}),a}])}])}(),function(){"use strict";var a=angular.module("ui.grid.autoResize",["ui.grid"]);a.directive("uiGridAutoResize",["$timeout","gridUtil",function(a,b){return{require:"uiGrid",scope:!1,link:function(a,c,d,e){function f(){i=b.elementHeight(c),h=b.elementWidth(c)}function g(){clearTimeout(j),j=setTimeout(function(){var d=b.elementHeight(c),j=b.elementWidth(c);d!==i||j!==h?(e.grid.gridHeight=d,e.grid.gridWidth=j,a.$apply(function(){e.grid.refresh().then(function(){f(),g()})})):g()},250)}var h,i;f();var j;g(),a.$on("$destroy",function(){clearTimeout(j)})}}}])}(),function(){"use strict";var a=angular.module("ui.grid.cellNav",["ui.grid"]);a.constant("uiGridCellNavConstants",{FEATURE_NAME:"gridCellNav",CELL_NAV_EVENT:"cellNav",direction:{LEFT:0,RIGHT:1,UP:2,DOWN:3,PG_UP:4,PG_DOWN:5},EVENT_TYPE:{KEYDOWN:0,CLICK:1,CLEAR:2}}),a.factory("uiGridCellNavFactory",["gridUtil","uiGridConstants","uiGridCellNavConstants","GridRowColumn","$q",function(a,b,c,d,e){var f=function(a,b,c,d){this.rows=a.visibleRowCache,this.columns=b.visibleColumnCache,this.leftColumns=c?c.visibleColumnCache:[],this.rightColumns=d?d.visibleColumnCache:[],this.bodyContainer=a};return f.prototype.getFocusableCols=function(){var a=this.leftColumns.concat(this.columns,this.rightColumns);return a.filter(function(a){return a.colDef.allowCellFocus})},f.prototype.getFocusableRows=function(){return this.rows.filter(function(a){return a.allowCellFocus!==!1})},f.prototype.getNextRowCol=function(a,b,d){switch(a){case c.direction.LEFT:return this.getRowColLeft(b,d);case c.direction.RIGHT:return this.getRowColRight(b,d);case c.direction.UP:return this.getRowColUp(b,d);case c.direction.DOWN:return this.getRowColDown(b,d);case c.direction.PG_UP:return this.getRowColPageUp(b,d);case c.direction.PG_DOWN:return this.getRowColPageDown(b,d)}},f.prototype.initializeSelection=function(){var a=this.getFocusableCols(),b=this.getFocusableRows();if(0===a.length||0===b.length)return null;return new d(b[0],a[0])},f.prototype.getRowColLeft=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=1);var h=0===f?c.length-1:f-1;return h>f?0===g?new d(a,c[h]):new d(e[g-1],c[h]):new d(a,c[h])},f.prototype.getRowColRight=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=0);var h=f===c.length-1?0:f+1;return f>h?g===e.length-1?new d(a,c[h]):new d(e[g+1],c[h]):new d(a,c[h])},f.prototype.getRowColDown=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);return-1===f&&(f=0),g===e.length-1?new d(a,c[f]):new d(e[g+1],c[f])},f.prototype.getRowColPageDown=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=0);var h=this.bodyContainer.minRowsToRender();return g>=e.length-h?new d(e[e.length-1],c[f]):new d(e[g+h],c[f])},f.prototype.getRowColUp=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);return-1===f&&(f=0),0===g?new d(a,c[f]):new d(e[g-1],c[f])},f.prototype.getRowColPageUp=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=0);var h=this.bodyContainer.minRowsToRender();return 0>g-h?new d(e[0],c[f]):new d(e[g-h],c[f])},f}]),a.service("uiGridCellNavService",["gridUtil","uiGridConstants","uiGridCellNavConstants","$q","uiGridCellNavFactory","GridRowColumn","ScrollEvent",function(a,b,c,d,e,f,g){var h={initializeGrid:function(a){a.registerColumnBuilder(h.cellNavColumnBuilder),a.cellNav={},a.cellNav.lastRowCol=null,a.cellNav.focusedCells=[],h.defaultGridOptions(a.options);var b={events:{cellNav:{navigate:function(a,b){},viewPortKeyDown:function(a,b){},viewPortKeyPress:function(a,b){}}},methods:{cellNav:{scrollToFocus:function(b,c){return h.scrollToFocus(a,b,c)},getFocusedCell:function(){return a.cellNav.lastRowCol},getCurrentSelection:function(){return a.cellNav.focusedCells},rowColSelectIndex:function(b){for(var c=-1,d=0;d<a.cellNav.focusedCells.length;d++)if(a.cellNav.focusedCells[d].col.uid===b.col.uid&&a.cellNav.focusedCells[d].row.uid===b.row.uid){c=d;break}return c}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods)},defaultGridOptions:function(a){a.modifierKeysToMultiSelectCells=a.modifierKeysToMultiSelectCells===!0},decorateRenderContainers:function(a){var b=a.hasRightContainer()?a.renderContainers.right:null,c=a.hasLeftContainer()?a.renderContainers.left:null;null!==c&&(a.renderContainers.left.cellNav=new e(a.renderContainers.body,c,b,a.renderContainers.body)),null!==b&&(a.renderContainers.right.cellNav=new e(a.renderContainers.body,b,a.renderContainers.body,c)),
\ No newline at end of file
diff --git a/public/app/9073265e.app.css b/public/app/9073265e.app.css
deleted file mode 100644
index 9ee7238..0000000
--- a/public/app/9073265e.app.css
+++ /dev/null
@@ -1 +0,0 @@
\ No newline at end of file
diff --git a/public/app/a64e9fe8.app.js b/public/app/a64e9fe8.app.js
deleted file mode 100644
index 54c8a0c..0000000
--- a/public/app/a64e9fe8.app.js
+++ /dev/null
@@ -1,51 +0,0 @@
-a.put("app/analytic/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-book-open"></i>\n					<a href="/analytics/list">{{ \'APPLICATION_REPORTS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-book-open font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_REPORTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="analytics.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle" href="#" data-toggle="dropdown" data-ng-click="createReport()">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_REPORT\' | translate }}\n							 <!-- <i class="fa fa-angle-down"></i> -->\n						</a>\n						<!-- <ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/analytics/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul> -->\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getAnalytics([\'name\', \'fullname\', \'email\'])" csv-header="[\'Username\', \'Fullname\', \'Email\']" field-separator=";" filename="analytics.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="reports" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.reportsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="reportByPage in reportsByPage | filter: $select.search">\n													<div ng-bind-html="reportByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(report, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="report in reports">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="analytics.checked" checklist-value="report.id"></td>\n								<td>{{report.name}}</td>\n					      <td>{{report.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/analytics/view/{{report.id}}/account">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(report.fullname,report.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="reports.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No analytics available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n									<div class="pagination" st-pagination st-items-by-page="conf.reportsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n					</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/modal/modal.html",'<form name="form" novalidate data-ng-submit="form.$valid && ok()">\n  <div class="modal-header">\n    <h3 class="modal-title">{{ \'APPLICATION_REPORT\' | translate }}</h3>\n  </div>\n\n  <div class="modal-body">\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': form.$submitted && form.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="form.$submitted && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group" data-ng-class="{\'has-error\': form.$submitted && form.description.$invalid}">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description">\n      <span data-ng-show="form.$submitted && form.description.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END DESCRIPTION -->\n  </div>\n  \n  <div class="modal-footer">\n    <button class="btn btn-success" type="submit">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n    <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n  </div>\n</form>\n'),a.put("app/analytic/view/view.account.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li data-ng-class="{\'active\': Auth.isAdmin()}" data-ng-show="Auth.isAdmin()">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_PERSONAL_INFO\' | translate}}</a>\n					</li>\n					<li data-ng-show="Auth.isAdmin()">\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_CHANGE_AVATAR\' | translate}}</a>\n					</li>\n					<li data-ng-show="Auth.isAdmin() || analytic.id === Auth.getCurrentUser().id" data-ng-class="{\'active\': !Auth.isAdmin() && analytic.id === Auth.getCurrentUser().id}">\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_CHANGE_PASSWORD\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- PERSONAL INFO TAB -->\n					<div class="tab-pane" data-ng-class="{\'active\': Auth.isAdmin()}" data-ng-show="Auth.isAdmin()" id="tab_1_1">\n						<form name="forms.info" data-ng-submit="updateItem()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="analytic.fullname" required/>\n								<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="analytic.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START EMAIL -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="analytic.email" required/>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n								</span>\n							</div>\n							<!-- END EMAIL -->\n\n							<!-- START INTERNAL -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="analytic.internal" required disabled/>\n								<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERNAL -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END PERSONAL INFO TAB -->\n					<!-- CHANGE AVATAR TAB -->\n					<div class="tab-pane" data-ng-show="Auth.isAdmin()" id="tab_1_2">\n						<form action="#" role="form">\n							<div class="form-group">\n								<div class="fileinput fileinput-new" data-provides="fileinput">\n									<div class="fileinput-new thumbnail" style="width: 200px; height: 150px;">\n										<img src="http://www.placehold.it/200x150/EFEFEF/AAAAAA&amp;text=no+image" alt=""/>\n									</div>\n									<div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 150px;">\n									</div>\n									<div>\n										<span class="btn default btn-file" data-ng-show="!uploader.queue[0]">\n											<span> {{ \'APPLICATION_SELECT_IMAGE\' | translate }} </span>\n											<input type="file" nv-file-select="" uploader="uploader" /><br/>\n										</span>\n										<button type="button" class="btn default" data-ng-show="uploader.queue[0]" data-dismiss="fileinput" ng-click="uploader.queue[0].remove()">\n											{{ \'APPLICATION_REMOVE\' | translate }}\n										</button>\n										<button type="button" class="btn green-haze" data-ng-show="uploader.queue[0]" data-ng-click="uploader.queue[0].upload()" ng-disabled="uploader.queue[0].isReady || uploader.queue[0].isUploading || uploader.queue[0].isSuccess">\n											{{ \'APPLICATION_CONFIRM\' | translate }}\n										</button>\n									</div>\n									<p>\n										</br> {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} <b>jpg, png, jpeg</b>.\n									</p>\n								</div>\n							</div>\n						</form>\n						<div class="row">\n							<div class="col-md-2">\n								<table class="table" border="0">\n									<tbody>\n									<tr data-ng-repeat="item in uploader.queue">\n											<td style="border-top-style:none">\n												<strong>\n													{{ item.file.name }}\n												</strong>\n											</td>\n											<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n												{{ item.file.size/1024/1024|number:2 }} MB\n											</td>\n											<td nowrap style="border-top-style:none">\n												<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n														<span class="glyphicon glyphicon-trash"></span> Remove\n												</button>\n											</td>\n										</tr>\n									</tbody>\n								</table>\n							</div>\n						</div>\n					</div>\n					<!-- END CHANGE AVATAR TAB -->\n					<!-- CHANGE PASSWORD TAB -->\n					<div class="tab-pane" data-ng-show="Auth.isAdmin() || analytic.id === Auth.getCurrentUser().id" data-ng-class="{\'active\': !Auth.isAdmin() && analytic.id === Auth.getCurrentUser().id}" id="tab_1_3">\n						<form name="forms.changePwd" data-ng-submit="forms.changePwd.$valid && updatePassword()" novalidate>\n							<!-- START CURRENT PWD -->\n							<div class="form-group" data-ng-if="!Auth.isAdmin()" data-ng-class="{\'has-error\': (forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="current_pwd" placeholder="{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}" class="form-control" data-ng-model="analytic.currentPwd" required/>\n								<span data-ng-show="(forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CURRENT PWD -->\n							<!-- START NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="new_pwd" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="analytic.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NEW PWD -->\n							<!-- START RE-NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.re_new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.re_new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="re_new_pwd" placeholder="{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="analytic.reNewPwd" nx-equal="analytic.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RE-NEW PWD -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END CHANGE PASSWORD TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/analytic/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-people"></i>\n					<a href="/analytics/list">{{ \'APPLICATION_ANALYTICS\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{analytic.fullname}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-userpic">\n					<img ng-src="api/users/avatar/{{analytic.userpic ? analytic.userpic : \'unknown_avatar\'}}" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- START SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{analytic.fullname}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{analytic.role}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.analytics.view.account\')}">\n							<a data-ng-href="/analytics/view/{{analytic.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-people"></i>\n				<a href="/analytics/list">{{ \'APPLICATION_ANALYTICS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/analytics/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" ng-init="getFirstFreeInternal();">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-user font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_ANALYTIC\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_ACCOUNT\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n			    <form name="forms.info" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n							<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n			      <!-- START USERNAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.name" required ng-remote-validate="/api/analytics/validate/name"/>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END USERNAME -->\n\n			      <!-- START EMAIL -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="item.email" required ng-remote-validate="/api/analytics/validate/email"/>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_EMAIL\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END EMAIL -->\n\n			      <!-- START PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n			        <span data-ng-show="(forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END PASSWORD -->\n\n			      <!-- START RE PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.nxEqual" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END RE PASSWORD -->\n\n						<!-- START INTERNAL -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n							<label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<div class="input-group">\n							<input type="number" min="1" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="item.internal" data-ng-disabled="!item.internalEnabled" data-ng-required="item.internalEnabled" ng-remote-validate="/api/analytics/validate/internal"/>\n							<span class="input-group-addon">\n								<input type="checkbox" data-ng-model="item.internalEnabled">\n							</span>\n							</div>\n							<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n							<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.ngRemoteValidate" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_INTERNAL\' | translate}}.\n							</span>\n						</div>\n						<!-- END INTERNAL -->\n\n			      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_VOICE\' | translate}}" canexit="exitValidation(forms.voice.$valid)">\n					<form name="forms.voice" novalidate>\n\n						<!-- START ACCOUNTCODE -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.accountcode.$touched || forms.voice.$submitted) && forms.voice.accountcode.$invalid}">\n							<label class="control-label">{{\'APPLICATION_ACCOUNTCODE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="number" name="accountcode" placeholder="{{\'APPLICATION_ACCOUNTCODE\' | translate}}" class="form-control" data-ng-model="item.accountcode" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.accountcode.$touched || forms.voice.$submitted) && forms.voice.accountcode.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END ACCOUNTCODE -->\n\n						<!-- START TRANSPORT -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_TRANSPORT\' | translate}}</label>\n							<ui-select multiple name="transport" ng-model="item.transport" theme="bootstrap" ng-disabled="disabled">\n						    <ui-select-match placeholder="Select transport...">{{$item}}</ui-select-match>\n						    <ui-select-choices repeat="transport in [\'udp\', \'tcp\', \'ws\', \'wss\'] | filter: $select.search">\n						    	{{transport}}\n						    </ui-select-choices>\n						  </ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n							</span>\n						</div>\n						<!-- END TRANSPORT -->\n\n						<!-- START HOST -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.host.$touched || forms.voice.$submitted) && forms.voice.host.$invalid}">\n							<label class="control-label">{{\'APPLICATION_HOST\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.host" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.host.$touched || forms.voice.$submitted) && forms.voice.host.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END HOST -->\n\n						<!-- START NAT -->\n						<!-- <div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_NAT\' | translate}}</label>\n							<ui-select multiple ng-model="item.nat" name="nat" theme="bootstrap" ng-disabled="disabled">\n								<ui-select-match placeholder="{{ \'APPLICATION_SEARCH_FILTER\' | translate }}">{{$item}}</ui-select-match>\n								<ui-select-choices repeat="nat in [\'yes\', \'no\', \'never\', \'route\', \'force_rport\', \'comedia\'] | filter: $select.search">\n									{{nat}}\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_NAT\' | translate }}\n							</span>\n						</div> -->\n\n						<!-- END NAT -->\n\n						<!-- START TYPE -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.type.$touched || forms.voice.$submitted) && forms.voice.type.$invalid}">\n							<label class="control-label">{{\'APPLICATION_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.type" name="type" theme="bootstrap" required>\n								<ui-select-match placeholder="{{ \'APPLICATION_SEARCH_FILTER\' | translate }}">{{$select.selected}}</ui-select-match>\n								<ui-select-choices repeat="type in [\'friend\', \'user\', \'peer\'] | filter: $select.search">\n									<div ng-bind-html="type | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_TYPE\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.type.$touched || forms.voice.$submitted) && forms.voice.type.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END TYPE -->\n\n						<!-- START CODEC -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_ALLOWED_CODECS\' | translate}}</label>\n							<ui-select multiple ng-model="item.allow" name="allow" theme="bootstrap" ng-disabled="disabled">\n						    <ui-select-match placeholder="Select codec...">{{$item}}</ui-select-match>\n						    <ui-select-choices repeat="allow in [\'g729\', \'ilbc\', \'gsm\', \'ulaw\', \'alaw\'] | filter: $select.search">\n						    	{{allow}}\n						    </ui-select-choices>\n						  </ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n							</span>\n						</div>\n						<!-- END CODEC -->\n\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						<input class="btn default" type="button" value="{{\'APPLICATION_BACK\' | translate}}" wz-previous/>\n					</form>\n				</wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),
-a.put("app/automation/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-bulb"></i>\n						<a href="#">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-bulb font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Automations.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_AUTOMATION\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/automations/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getAutomations([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="automations.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedAutomations" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.AutomationsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="AutomationByPage in AutomationsByPage | filter: $select.search">\n													<div ng-bind-html="AutomationByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(Automation, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="channel">{{ \'APPLICATION_CHANNEL\' | translate }}</th>\n								<th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="Automation in displayedAutomations">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="Automations.checked" checklist-value="Automation.id"></td>\n					      <td>{{Automation.name}}</td>\n								<td>{{Automation.description}}</td>\n								<td>{{Automation.channel | capitalize}}</td>\n								<td>\n									<input\n										data-ng-change="updateItem(Automation.id, Automation.status)",\n								    bs-switch\n								    ng-model="Automation.status"\n								    type="checkbox"\n								    switch-active="{{ isActive }}"\n								    switch-on-text="{{ onText }}"\n								    switch-off-text="{{ offText }}"\n								    switch-on-color="{{ onColor }}"\n								    switch-off-color="{{ offColor }}"\n								    switch-animate="{{ animate }}"\n								    switch-size="{{ size }}"\n								    switch-label="{{ label }}"\n								    switch-icon="{{ icon }}"\n								    switch-radio-off="{{ radioOff }}"\n								    switch-label-width="{{ labelWidth }}"\n								    switch-handle-width="{{ handleWidth }}">\n								</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/automations/view/{{Automation.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(Automation.name, Automation.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedAutomations.length">\n								<td colspan="6" class="text-center">\n									<i>No available automations</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="channel" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CHANNEL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.AutomationsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/automation/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="automation"></i>\n				</li>\n				<li data-ng-show="automation">\n					<a href="#">{{ automation.description || automation.name }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/automation.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ automation.name }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{ automation.description }}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.automations.view.settings\')}">\n							<a href="/automations/view/{{automation.id}}/settings">\n							<i class="icon-bulb"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/automation/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_CONDITIONS\' | translate}} & {{\'APPLICATION_ACTIONS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<!-- <pre>\n					{{conditionsData.query | json}}\n				</pre>\n				<pre>\n					{{actionsData.query | json}}\n				</pre> -->\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateAutomation()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="automation.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="automation.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n					<div class="tab-pane" id="tab_1_2">\n					<div class="portlet light bordered">\n						<div class="portlet-title">\n							<div class="caption font-blue-hoki">\n								<i class="icon-tag font-blue-hoki"></i>\n								<span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n							</div>\n						</div>\n						<div class="portlet-body">\n							<query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$automations.operators" properties="properties[automation.channel]"></query-builder>\n						</div>\n					</div>\n					<div class="portlet light bordered">\n						<div class="portlet-title">\n							<div class="caption font-blue-hoki">\n								<i class="icon-tag font-blue-hoki"></i>\n								<span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n							</div>\n						</div>\n						<div class="portlet-body">\n							<query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[automation.channel]"></query-builder>\n						</div>\n					</div>\n\n						<input class="btn green-haze" type="button" value="{{\'APPLICATION_UPDATE\' | translate}}" data-ng-click="updateAutomation()"/>\n					</div>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/automation/wizard/wizard.html",'<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN PAGE HEADER-->\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n		<!-- END PAGE HEADER-->\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-bulb font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<!-- <pre>\n						{{item | json}}\n					</pre>\n					<pre>\n						{{conditionsData.query | json}}\n					</pre>\n					<pre>\n						{{actionsData.query | json}}\n					</pre> -->\n					<wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n						<form name="forms.general" data-ng-submit="submit()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.name.$touched && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.general.name.$touched && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n						</form>\n					</wz-step>\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(conditionsData.query.length && actionsData.query.length)">\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_CHANNEL\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<div class="form-group"  >\n									<label class="control-label">{{ \'APPLICATION_CHANNEL\' | translate }}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="item.channel" name="channel" theme="bootstrap" required>\n										<ui-select-match placeholder="{{ \'APPLICATION_CHANNEL\' | translate }}">{{$select.selected | capitalize}}</ui-select-match>\n										<ui-select-choices repeat="channel in $automations.channels | filter: $select.search">\n											<div ng-bind-html="channel | highlight: $select.search | capitalize"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n							</div>\n						</div>\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$automations.operators" properties="properties[item.channel]"></query-builder>\n							</div>\n						</div>\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[item.channel]"></query-builder>\n							</div>\n						</div>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/preview/preview.html",'<style>\n  .xc_footer\n  {\n  	text-align: center;\n  	padding-bottom: 5px;\n  }\n\n  .xc_powered\n  {\n  	color: grey;\n    font: 10px/16px "Lucida Grande","Lucida Sans Unicode",Arial,Verdana,sans-serif;\n  	padding-bottom: 5px;\n  }\n\n  .xc_chat_container\n  {\n  	//width:379px;\n  	//position:fixed;\n  	//bottom:0;\n  	//right:50px;\n  	z-index:9999;\n  	background-color:transparent;\n  }\n\n  .xc_chat_container *\n  {\n  	font-family:Arial,Helvetica,sans-serif;\n  	font-size:13px;\n  	margin:0;\n  	padding:0;\n  }\n\n  .xc_chat_container p\n  {\n  	margin:5px 0;\n  }\n\n  .xc_signup_wrapper\n  {\n  	max-height:375px;\n  }\n\n  .xc_conversation_container\n  {\n  	max-height:375px;\n  	list-style:none;\n  	overflow:auto;\n  	margin:0;\n  	padding:20px 10px;\n  }\n\n  .xc_conversation_container a\n  {\n  	color:#036;\n  }\n\n  .xc_conversation_container a.xc_btn_style\n  {\n  	color:#fff;\n  }\n\n  div.xc_chat_head\n  {\n  	color:#fff;\n  	background:{{chatWebsite.color}};\n  	//border-radius: 20px 20px 0px 0px !important;\n  	height:52px;\n  	line-height:55px;\n  	cursor:pointer;\n  }\n\n  div.xc_chat_head.rounded\n  {\n  	border-radius: 20px 20px 0px 0px !important;\n  }\n\n  div.xc_chat_head.squared\n  {\n  	//border-radius: 20px 20px 0px 0px !important;\n  }\n\n  .xc_chat_head-title\n  {\n  	margin:5px 0 0 15px;\n  	color: #fff;\n  }\n\n  .xc_header_icon\n  {\n  	display:block;\n  	background-image:url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/icon_visitorchat.png);\n  	width:21px;\n  	height:16px;\n  	float:right;\n  	margin:20px 20px 0 0;\n  }\n\n  .xc_header_icon span.xc_notification_badge span\n  {\n  	display:block;\n  	height:16px;\n  	width:15px;\n  	text-align:center;\n  	font-size:9px;\n  	color:#555;\n  	position:relative;\n  	top:-20px;\n  	left:4px;\n  	margin:0;\n  	padding:0;\n  }\n\n  .xc_sub-head-spacer\n  {\n  	padding:1px;\n  }\n\n  .xc_conversation\n  {\n  	display:none;\n  	margin:0 12px 0 11px;\n  }\n\n  .xc_chat_toggle_container\n  {\n  	/*background:mediumslateblue center -52px;*/\n  	background: white;\n  	border-style: solid;\n    border-width: 1px;\n  	border-color: {{chatWebsite.color}};\n  	//display:none;\n  }\n\n  .xc_signup_wrapper,.xc_notifications_wrapper,.xc_enquiry_wrapper\n  {\n  	//display:none;\n    display:block;\n  	overflow:auto;\n  	line-height:1;\n  	padding:25px;\n  }\n\n  .xc_exit_chat_container\n  {\n  	text-align:right;\n  	width:95%;\n  	margin:0 auto;\n  	padding:5px 1px 0 0;\n  }\n\n  .xc_exit_chat_container span,.xc_exit_chat_container a\n  {\n  	font-size:80%;\n  	color:#666;\n  	text-decoration:none;\n  }\n\n  .xc_exit_chat_container a:hover\n  {\n  	color:#333;\n  }\n\n  a.xc_btn_exit_chat_confirm:hover\n  {\n  	color:red;\n  }\n\n  a.xc_btn_exit_chat_cancel:hover\n  {\n  	color:#0c0;\n  }\n\n  form.xc_form_reply\n  {\n  	position:relative;\n  }\n\n  .xc_form_reply\n  {\n  	/*background-color:#e3e3e3;*/\n  	text-align:center;\n  	/*border-top:1px solid #d3d3d3;*/\n  }\n\n  .xc_input_message\n  {\n  	height:100px;\n  	margin:10px auto 5px;\n  }\n\n  .xc_input_enquiry_message\n  {\n  	height:100px;\n  }\n\n  .xc_form_signup,.xc_form_enquiry\n  {\n  	text-align:center;\n  }\n\n  .xc_chat_container textarea,.xc_chat_container input[type=text]\n  {\n  	width:95%;\n  	min-width:95%;\n  	max-width:95%;\n  	-webkit-box-sizing:border-box;\n  	-moz-box-sizing:border-box;\n  	box-sizing:border-box;\n  	background-color:#fff;\n  	border:1px solid #ccc;\n  	-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  	-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  	box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  	-webkit-transition:border linear .2s, box-shadow linear .2s;\n  	-moz-transition:border linear .2s, box-shadow linear .2s;\n  	-o-transition:border linear .2s, box-shadow linear .2s;\n  	transition:border linear .2s, box-shadow linear .2s;\n  	display:inline-block;\n  	font-size:14px;\n  	line-height:20px;\n  	color:#555;\n  	-webkit-border-radius:4px;\n  	-moz-border-radius:4px;\n  	border-radius:4px;\n  	vertical-align:middle;\n  	margin:3px 0;\n  	padding:4px 6px;\n  	resize: none;\n  }\n\n  .xc_chat_container textarea:focus,.xc_chat_container input[type=text]:focus\n  {\n  	outline: {{chatWebsite.color_focus}} auto 5px;\n  }\n\n  .xc_chat_container input[type=text]\n  {\n    	height: 30px;\n  }\n\n  .xc_message_sending textarea, .xc_enquiry_sending textarea\n  {\n    	background: #fff url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/loading.gif) 98% 5px no-repeat;\n  }\n\n  .xc_chatrow\n  {\n  	display:block;\n  	border-top:1px dashed #e3e3e3;\n  	margin:5px 0;\n    	clear: both;\n  }\n\n  .xc_chatrow p\n  {\n  	color:#444;\n  	word-wrap:break-word;\n  }\n\n  .xc_time\n  {\n  	float:right;\n  	font-size:80%;\n  	color:#ccc;\n  	padding-left:12px;\n  	margin:3px;\n  }\n\n  .xc_submission_pending\n  {\n  	background:transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_clock.png) left center no-repeat;\n  }\n\n  .xc_submission_confirmed\n  {\n  	background:transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_tick.png) left center no-repeat;\n  }\n\n  .xc_fullname\n  {\n  	font-weight:700;\n  }\n\n  .xc_fullname:after\n  {\n  	content:":";\n  }\n\n  .xc_avatar\n  {\n    	float: left;\n    	margin: 0 5px 5px 0;\n    	display: inline-block;\n    	width: 40px;\n    	height: 40px;\n    	border-radius: 5px;\n    	-moz-border-radius: 5px;\n    	-webkit-border-radius: 5px;\n  }\n\n  .xc_smilie\n  {\n  	background-repeat:no-repeat;\n  	display:inline-block;\n  	width:18px;\n  	height:18px;\n  	text-indent:-9999px;\n  	white-space:nowrap;\n  }\n\n  .xc_btn_load_more\n  {\n  	width:100%!important;\n  }\n\n  .xc_notifications_wrapper\n  {\n  	text-shadow:0 1px 0 rgba(255,255,255,0.5);\n  }\n\n  .xc_notification_success\n  {\n  	color:#468847;\n  }\n\n  .xc_notification_error\n  {\n  	color:#b94a48;\n  }\n\n  .xc_errorlist\n  {\n  	margin:0 0 0 25px;\n  	padding:0;\n  }\n\n  i.xc_btn_notifications_close\n  {\n  	float:right;\n  	font-weight:700;\n  	font-size:20px;\n  	color:#ccc;\n  	cursor:pointer;\n  	margin:-15px 0 0;\n  	padding:0;\n  }\n\n  .xc_btn_style\n  {\n  	width:95%;\n  	text-align:center;\n  	line-height:1.2;\n  	font-size:90%;\n  	-moz-box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  	-webkit-box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  	box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  	background:0;\n  	background-color:{{chatWebsite.color_button}};\n  	-moz-border-radius:4px;\n  	-webkit-border-radius:4px;\n  	border-radius:4px;\n  	border:1px solid {{chatWebsite.color_button}};\n  	display:inline-block;\n  	color:#fff;\n  	font-weight:700;\n  	text-decoration:none;\n  	text-shadow:1px 1px 0 #000c17;\n  	margin:0 auto 5px;\n  	padding:2px 0;\n  }\n\n  .xc_btn_style:hover\n  {\n  	background:0;\n  	background-color:{{chatWebsite.color_button}};\n      color: #fff;\n    	text-decoration: none;\n  }\n\n  .xc_btn_style:active\n  {\n  	position:relative;\n  	top:1px;\n  }\n\n  .xc_composing_container\n  {\n    	display: none;\n    width: 95%;\n    margin: 0 auto;\n    background: transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_pencil.png) 6px center no-repeat;\n    padding-left: 19px;\n    font-style: italic;\n  }\n\n  @media only screen and (max-height: 620px) {\n  	.xc_conversation_container\n  	{\n  		max-height:300px!important;\n  	}\n  }\n\n  @media only screen and (max-height: 545px) {\n  	.xc_conversation_container\n  	{\n  		max-height:200px!important;\n  	}\n  }\n\n  @media only screen and (max-height: 445px) {\n  	.xc_conversation_container\n  	{\n  		max-height:150px!important;\n  	}\n  }\n\n  @media only screen and (max-width: 480px) {\n  	.xc_chat_container\n  	{\n  		width:95%!important;\n  		right:auto!important;\n  		-webkit-border-top-left-radius:15px;\n  		-webkit-border-top-right-radius:15px;\n  		-moz-border-radius-topleft:15px;\n  		-moz-border-radius-topright:15px;\n  		border-top-left-radius:15px;\n  		border-top-right-radius:15px;\n  		box-shadow:0 0 5px rgba(0,0,0,.5);\n  		-webkit-box-shadow:0 0 5px rgba(0,0,0,.5);\n  		-moz-box-shadow:0 0 5px rgba(0,0,0,.5);\n  	}\n\n  	div.xc_chat_head\n  	{\n  		background-color:#036;\n  		background-image:none;\n  		line-height:25px;\n  		height:auto;\n  		-webkit-border-top-left-radius:15px;\n  		-webkit-border-top-right-radius:15px;\n  		-moz-border-radius-topleft:15px;\n  		-moz-border-radius-topright:15px;\n  		border-top-left-radius:15px;\n  		border-top-right-radius:15px;\n  		padding:10px;\n  	}\n\n  	.xc_chat_toggle_container\n  	{\n  		background-color:#fff;\n  		background-image:none;\n  		border-color:#036;\n  		border-style:solid;\n  		border-width:0 1px;\n  	}\n\n  	.xc_header_icon\n  	{\n  		background-image:url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/icon_visitorchat.png);\n  		margin:0;\n  	}\n\n  	.xc_header_icon span.xc_notification_badge span\n  	{\n  		top:-5px;\n  		left:5px;\n  	}\n\n  	.xc_notification_success\n  	{\n  		background-color:#dff0d8;\n  		border:1px solid #d6e9c6;\n  	}\n\n  	.xc_conversation_container\n  	{\n  		max-height:375px;\n  		border-color:#036;\n  	}\n\n  	.xc_notification_error\n  	{\n  		background-color:#f2dede;\n  		border:1px solid #eed3d7;\n  	}\n\n  	.xc_sub-head-spacer\n  	{\n  		display:none;\n  		padding:0;\n  	}\n\n  	.xc_chat_head-title,.xc_conversation\n  	{\n  		margin:0;\n  	}\n  }\n</style>\n<div class="xc_chat_container">\n    <div class="xc_chat_head {{chatWebsite.header_shape}}">\n      <i class="xc_header_icon">\n        <span class="xc_notification_badge">\n          <span class="xc_notification_badge_number"></span>\n        </span>\n      </i>\n      <span class="xc_chat_head-title">{{statePreview.state == \'online\' ? chatWebsite.header_online : chatWebsite.header_offline}}</span>\n    </div>\n    <div class="xc_chat_toggle_container">\n        <div class="xc_sub-head-spacer"></div>\n        <div class="xc_notifications_wrapper">\n            <!--<i class="xc_btn_notifications_close">&times;</i>-->\n            <ul class="xc_errorlist"></ul>\n        </div>\n        <div class="xc_enquiry_wrapper" data-ng-show=\'statePreview.state == "offline"\'>\n            <form class="xc_form_enquiry" accept-charset="UTF-8">\n                <p ng-bind-html=\'chatWebsite.offline_message\'></p>\n                <input maxlength="45" type="text" name="data[Enquiry][fullname]" placeholder="{{chatWebsite.username_placeholder}}" class="xc_input_enquiry_fullname" />\n                <input maxlength="85" type="text" name="data[Enquiry][email]" placeholder="{{chatWebsite.email_placeholder}}" class="xc_input_enquiry_email" />\n                <textarea maxlength="1500" placeholder="{{chatWebsite.enquiry_message_placeholder}}" name="data[Enquiry][message]" class="xc_input_enquiry_message"></textarea>\n                <a href="#" class="xc_btn_enquiry xc_btn_style">{{chatWebsite.enquiry_button}}</a></form>\n        </div>\n        <div class="xc_signup_wrapper" data-ng-show=\'statePreview.state == "online"\'>\n            <form class="xc_form_signup" accept-charset="UTF-8">\n                <p ng-bind-html=\'chatWebsite.online_message\'></p>\n                <input maxlength="45" type="text" name="data[Discussion][fullname]" placeholder="{{chatWebsite.username_placeholder}}" class="xc_input_fullname" />\n                <input maxlength="85" type="text" name="data[Discussion][email]" placeholder="{{chatWebsite.email_placeholder}}" class="xc_input_email" />\n                <input type="hidden" class="xc_input_visitor_time" name="data[Discussion][visitor_time]" /><a href="#" class="xc_btn_signup xc_btn_style">{{chatWebsite.start_chat_button}}</a></form>\n        </div>\n        <!-- <div class="xc_conversation">\n            <div class="xc_conversation_container">\n                <p class="xc_message_intro" data-id="-10">{FirstMessageText}</p>\n            </div>\n            <div class="xc_composing_container"></div>\n            <form class="xc_form_reply" accept-charset="UTF-8">\n                <div class="xc_exit_chat_container"><a href="#" class="xc_btn_exit_chat">{ExitChatButtonText}</a>\n                    <div class="xc_exit_chat_confirmation_wrapper" style="display: none;"><span>{ExitChatQuestionText} </span><a href="#" class="xc_btn_exit_chat_confirm">{ExitChatButtonConfirmText}</a><span> | </span><a href="#" class="xc_btn_exit_chat_cancel">{ExitChatButtonCancelText}</a></div>\n                </div>\n                <textarea maxlength="750" placeholder="{MessagePlaceholderText}" name="data[Message][message]" class="xc_input_message"></textarea><a href="#" class="xc_btn_send xc_btn_style">{MessageSendButtonText}</a></form>\n        </div> -->\n        <div class="xc_footer">\n            <div class="xc_powered"><a>Powered by Xenialab | Trademark xCALLY</a></div>\n        </div>\n    </div>\n</div>\n'),a.put("app/chat/queue/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-bubble"></i>\n						<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-layers"></i>\n						<a href="/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_QUEUE\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="chatQueues.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<!-- <li>\n								<a href="#" data-ng-click="open()">\n								<i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n							</li> -->\n							<li>\n								<a href="/chat/queues/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n							<!-- <li>\n								<a href="#">\n								<i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n							</li> -->\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getChatQueues([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Username\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="chat_queues.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedChatQueues" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.chatQueuesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="chatQueueByPage in chatQueuesByPage | filter: $select.search">\n													<div ng-bind-html="chatQueueByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(queue, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate }}</th>\n								<th st-sort="timeout">{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="chatQueue in displayedChatQueues" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="chatQueues.checked" checklist-value="chatQueue.id"></td>\n					      <td>{{chatQueue.name}}</td>\n								<td>{{chatQueue.description}}</td>\n								<td>{{chatQueue.strategy | uppercase}}</td>\n								<td>{{chatQueue.timeout}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/chat/queues/view/{{chatQueue.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(chatQueue.name,chatQueue.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedChatQueues.length">\n								<td colspan="6" style="text-align:center;">\n									<i>No chat queues available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.chatQueuesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/chat/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body" style="width: 50%; margin: 0 auto;">\n				<!-- BEGIN FORM-->\n				<form action="index.html" class="form-horizontal form-row-seperated">\n					<div class="form-body text-center">\n						<div class="form-group last">\n							<div class="col-md-9" id="multi-select-team">\n							</div>\n						</div>\n					</div>\n				</form>\n				<!-- END FORM-->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/chat/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-bubble"></i>\n					<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-layers"></i>\n					<a href="/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					<i data-ng-show="queue" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="queue">\n					<a href="#">{{queue.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{queue.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.chat.queues.view.settings\')}">\n							<a data-ng-href="/chat/queues/view/{{queue.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.chat.queues.view.agents\')}">\n							<a data-ng-href="/chat/queues/view/{{queue.id}}/agents">\n							<i class="icon-users"></i>\n							{{ \'APPLICATION_AGENTS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/queue/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.general" data-ng-submit="forms.general.$valid && updateChatQueue()" novalidate>\n					<!-- START NAME -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n						<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n						<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n						<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END NAME -->\n\n					<!-- START DESCRIPTION -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n						<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n					</div>\n					<!-- END DESCRIPTION -->\n\n					<!-- START TIMEOUT -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_AGENT\' | translate}} {{\'APPLICATION_TIMEOUT\' | translate}}</label>\n						<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" min="1" data-ng-model="queue.timeout"/>\n					</div>\n					<!-- END TIMEOUT -->\n\n					<!-- START HEADER SHAPE -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n						<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n						<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n						<ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n							<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n							<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n								<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n					</div>\n					<!-- END HEADER SHAPE -->\n					<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n				</form>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/chat/queue/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-envelope"></i>\n				<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n        <i class="fa fa-angle-right"></i>\n			</li>\n      <li>\n				<i class="icon-layers"></i>\n				<a href="/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-layers font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n					<form name="forms.general" data-ng-submit="forms.general.$valid && createItem()" novalidate>\n						<!-- START NAME -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n							<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n						</div>\n						<!-- END DESCRIPTION -->\n\n						<!-- START TIMEOUT -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n							<label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="number" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n              <span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid && forms.general.timeout.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n            </div>\n						<!-- END TIMEOUT -->\n\n						<!-- START HEADER SHAPE -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n							<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n								<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n									<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n              <span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid && forms.general.strategy.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n						</div>\n						<!-- END HEADER SHAPE -->\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CREATE\' | translate}}"/>\n					</form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/chat/realtime/view/agent/agent.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedAgents" st-safe-src="agents" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="12">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n											<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="from" class="input-small">{{ \'APPLICATION_VISITOR\' | translate }}</th>\n						<th st-sort="accountname" class="input-small">{{ \'APPLICATION_WEB_SITE\' | translate }}</th>\n						<th st-sort="agentcalledAt" st-sort-default="reverse">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n						<th st-sort="agentconnectAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n						<th st-sort="agentringnoanswerAt">{{ \'APPLICATION_UNASWER_AT\' | translate }}</th>\n						<th st-sort="reason">{{ \'APPLICATION_REASON\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="agent in displayedAgents">\n						<td>\n							<span>\n								<i data-ng-class="{\'icon-user font-yellow\': agent.lastevent === \'called\',\n								\'icon-user-following font-green\': agent.lastevent === \'agent\',\n								\'icon-user-unfollow font-red\': agent.lastevent === \'timeout\',\n								\'icon-user-unfollow font-blue\': agent.lastevent === \'answered_elsewhere\'}"></i>\n							</span>\n						</td>\n						<td>{{agent.uniqueid}}</td>\n						<td>{{agent.chatqueuename}}</td>\n						<td>{{agent.fullname}}</td>\n						<td>{{agent.visitorname}} {{agent.visitoremail}}</td>\n						<td>{{agent.websitename}}</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentcalledAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentconnectedAt}}" data-ng-show="agent.agentconnectedAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentringnoanswerAt}}" data-ng-show="agent.agentringnoanswerAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							{{agent.reason | uppercase}}\n						</td>\n			    </tr>\n					<tr data-ng-hide="displayedAgents.length">\n						<td colspan="11" style="text-align:center;">\n							<i>No agents available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="membername" placeholder="{{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="from" placeholder="{{ \'APPLICATION_VISITOR\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="accountname" placeholder="{{ \'APPLICATION_WEB_SITE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="7"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="12" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/realtime/view/agent/agent.queues.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<div id="grid1" ui-grid="gridOptions" ui-grid-tree-view class="grid"></div>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/realtime/view/agent/agent.timeline.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedAgents" st-safe-src="agents" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="12">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n											<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="from" class="input-small">{{ \'APPLICATION_VISITOR\' | translate }}</th>\n						<th st-sort="accountname" class="input-small">{{ \'APPLICATION_WEB_SITE\' | translate }}</th>\n						<th st-sort="agentcalledAt" st-sort-default="reverse">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n						<th st-sort="agentconnectAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n						<th st-sort="agentringnoanswerAt">{{ \'APPLICATION_UNASWER_AT\' | translate }}</th>\n						<th st-sort="reason">{{ \'APPLICATION_REASON\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="agent in displayedAgents">\n						<td>\n							<span>\n								<i data-ng-class="{\'icon-user font-yellow\': agent.lastevent === \'called\',\n								\'icon-user-following font-green\': agent.lastevent === \'agent\',\n								\'icon-user-unfollow font-red\': agent.lastevent === \'timeout\',\n								\'icon-user-unfollow font-blue\': agent.lastevent === \'answered_elsewhere\'}"></i>\n							</span>\n						</td>\n						<td>{{agent.uniqueid}}</td>\n						<td>{{agent.chatqueuename}}</td>\n						<td>{{agent.fullname}}</td>\n						<td>{{agent.visitorname}} {{agent.visitoremail}}</td>\n						<td>{{agent.websitename}}</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentcalledAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentconnectedAt}}" data-ng-show="agent.agentconnectedAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentringnoanswerAt}}" data-ng-show="agent.agentringnoanswerAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							{{agent.reason | uppercase}}\n						</td>\n			    </tr>\n					<tr data-ng-hide="displayedAgents.length">\n						<td colspan="11" style="text-align:center;">\n							<i>No agents available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="membername" placeholder="{{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="from" placeholder="{{ \'APPLICATION_VISITOR\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="accountname" placeholder="{{ \'APPLICATION_WEB_SITE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="7"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="12" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/realtime/view/session/session.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initChats()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedChats" st-safe-src="sessions" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="12">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.sessionsByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="sessionByPage in sessionsByPage | filter: $select.search">\n											<div ng-bind-html="sessionByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="visitorname" class="input-medium">{{ \'APPLICATION_VISITOR\' | translate }}</th>\n						<th st-sort="websitename" class="input-small">{{ \'APPLICATION_WEB_SITE\' | translate }}</th>\n						<th st-sort="sessioncalledAt" st-sort-default="reverse">{{ \'APPLICATION_JOIN_AT\' | translate }}</th>\n						<th st-sort="sessionconnectAt">{{ \'APPLICATION_LEAVE_AT\' | translate }}</th>\n						<th st-sort="sessionringnoanswerAt">{{ \'APPLICATION_UNMANAGED_AT\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="session in displayedChats">\n						<td>\n							<span>\n								<i data-ng-class="{\'icon-user font-yellow\': session.mailjoinAt && !session.mailleaveAt,\n								\'icon-user-following font-green\': session.fullname,\n								\'icon-user-unfollow font-red\': session.mailunmanagedAt}"></i>\n							</span>\n						</td>\n						<td>{{session.uniqueid}}</td>\n						<td>{{session.chatqueuename}}</td>\n						<td>{{session.fullname}}</td>\n						<td>{{session.visitorname + \' [\' + session.visitoremail + \']\'}}</td>\n						<td>{{session.websitename}}</td>\n						<td>\n							<time is="relative-time" datetime="{{session.chatjoinAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{session.chatleaveAt}}" data-ng-show="session.chatleaveAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{session.chatunmanagedAt}}" data-ng-show="session.chatunmanagedAt">\n								April 1, 2014\n							</time>\n						</td>\n			    </tr>\n					<tr data-ng-hide="displayedChats.length">\n						<td colspan="11" style="text-align:center;">\n							<i>No sessions available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="membername" placeholder="{{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="visitorname" placeholder="{{ \'APPLICATION_VISITOR\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="websitename" placeholder="{{ \'APPLICATION_WEB_SITE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="7"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="12" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.sessionsByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-energy"></i>\n					<a href="/chat/realtime/list">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<div>\n		    <nav class="navbar navbar-default" role="navigation">\n		        <div class="navbar-header">\n		            <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n		                <span class="sr-only">Toggle navigation</span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		            </button>\n		            <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n		        </div>\n\n		        <!-- Collect the nav links, forms, and other content for toggling -->\n		        <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n		            <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_AGENTS\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'agents\'></tree>\n		                </li>\n										<li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_SESSIONS\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'sessions\'></tree>\n		                </li>\n		            </ul>\n		            <!-- <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_QUEUES\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'queues\'></tree>\n		                </li>\n		            </ul> -->\n		        </div>\n		        <!-- /.navbar-collapse -->\n		    </nav>\n		</div>\n		<div ui-view></div>\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.conversation.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="col-md-12">\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-notebook font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_CONVERSATIONS\' | translate }}</a> </span>\n			</div>\n			<div class="actions">\n				<a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedChatRooms" filename="rooms.csv">\n				<i class="icon-cloud-download"></i></a>\n				<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<!-- START TABLE -->\n			<table st-table="displayedChatRooms" st-safe-src="chatRooms" class="table table-bordered table-hover">\n				<div class="table-responsive">\n					<thead>\n						<tr>\n							<th colspan="9">\n								<div class="row">\n									<div class="col-md-6">\n										<select class="form-control input-small select2me" data-ng-model="conf.chatRoomsByPage">\n											<option value="10">10</option>\n											<option value="25">25</option>\n											<option value="50">50</option>\n											<option value="{{chatRooms.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n										</select>\n									</div>\n									<div class="col-md-6">\n										<div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search"/>\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div>\n									</div>\n								</div>\n							</th>\n						</tr>\n						<tr>\n							<th st-sort="type">{{ \'APPLICATION_TYPE\' | translate }}</th>\n							<th st-sort="users">{{ \'APPLICATION_USERS\' | translate }}</th>\n							<th st-sort="visitor">{{ \'APPLICATION_VISITOR\' | translate }}</th>\n							<th st-sort="status">{{ \'APPLICATION_STATUS\' | translate }}</th>\n							<th st-sort="createdAt">{{ \'APPLICATION_TIME\' | translate }}</th>\n						</tr>\n					</thead>\n					<tbody>\n						<tr data-ng-repeat="chatRoom in displayedChatRooms" data-ng-click="$location.path(\'/chat/statistics/conversation/\' + chatRoom.id)">\n							<td style="text-align: center;">{{chatRoom.type | uppercase}}</td>\n							<td style="text-align: center;">{{getUsersFullname(chatRoom.Users)}}</td>\n							<td style="text-align: center;">{{chatRoom.ChatVisitor.email}}</td>\n							<td style="text-align: center;">\n								<span class="label label-sm label-success" data-ng-class="{\'label-success\': chatRoom.status == \'close\', \'label-warning\': chatRoom.status == \'open\'}">\n									{{chatRoom.status | capitalize}}\n								</span>\n							</td>\n							<td style="text-align: center;">\n								<time is="relative-time" datetime="{{chatRoom.createdAt}}">\n									April 1, 2014\n								</time>\n							</td>\n						</tr>\n					</tbody>\n					<tfoot>\n						<tr>\n							<td colspan="9" class="text-center">\n								<div st-pagination class="pagination" st-items-by-page="conf.chatRoomsByPage" st-displayed-pages="7"></div>\n							</td>\n						</tr>\n					</tfoot>\n			</div>\n			</table>\n			<!-- END TABLE -->\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/chat/statistic/statistic.conversation.view.html",'<!-- BEGIN PAGE CONTENT-->\n<div data-ng-init="initRoomView()">\n	<div class="col-md-6">\n		<!-- BEGIN PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-book-open font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TRANSCRIPT\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="chatRoom.ChatMessages" filename="chatMessages.csv">\n					<i class="icon-cloud-download"></i></a>\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="scroller" style="height: 352px;" data-always-visible="1" data-rail-visible1="1">\n					<ul class="chats">\n						<li data-ng-class="{\'out\': chatMessage.visitorId, \'in\': chatMessage.userId}" data-ng-repeat="chatMessage in chatRoom.ChatMessages | orderBy:\'-createdAt\'">\n							<img class="avatar" data-ng-src="api/users/{{chatMessage.userId ? chatMessage.userId : \'avatar\'}}/avatar"/>\n							<div class="message">\n								<span class="arrow">\n								</span>\n								<a href="#" class="name">\n								{{chatMessage.fullname}} </a>\n								<span class="datetime">\n									<time is="relative-time" datetime="{{chatMessage.createdAt}}">\n										April 1, 2014\n									</time>\n								</span>\n								<span class="body">\n									{{chatMessage.body}}\n								</span>\n							</div>\n						</li>\n					</ul>\n				</div>\n			</div>\n		<!-- END PORTLET-->\n		</div>\n	</div>\n	<div class="col-md-6">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-user font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_VISITOR\' | translate }}:</a> </span>\n					<span class="caption-helper">{{chatRoom.ChatVisitor.fullname}}</span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.fullname">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_FULLNAME\' | translate}}\n					</div>\n					<div class="col-md-8 value">\n						{{chatRoom.ChatVisitor.fullname}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.email">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_EMAIL\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.email}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.remote_address">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.remote_address}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.referer">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REFERER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.referer}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.browser">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_BROWSER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.browser}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.engine">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ENGINE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.engine}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.os">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_OS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.os}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.device">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_DEVICE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.device}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.country">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_COUNTRY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.country}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.region">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REGION\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.region}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.city">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_CITY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.city}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.latitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LATITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.latitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.longitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LONGITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.longitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.createdAt">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						<time is="relative-time" datetime="{{chatRoom.ChatVisitor.createdAt}}">\n							April 1, 2014\n						</time>\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered" data-ng-repeat="user in chatRoom.Users">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-earphones-alt font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AGENT\' | translate }}:</a> </span>\n					<span class="caption-helper">{{user.fullname}}</span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row static-info">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_FULLNAME\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{user.fullname}}\n					</div>\n				</div>\n				<div class="row static-info">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_USERNAME\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{user.name}}\n					</div>\n				</div>\n				<div class="row static-info">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ROLE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{user.role | uppercase}}\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.enquiry.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="col-md-12">\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-question font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_ENQUIRIES\' | translate }}</a> </span>\n			</div>\n			<div class="actions">\n				<a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedChatEnquiries" filename="enquiries.csv">\n				<i class="icon-cloud-download"></i></a>\n				<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<!-- START TABLE -->\n			<table st-table="displayedChatEnquiries" st-safe-src="chatEnquiries" class="table table-bordered table-hover">\n				<div class="table-responsive">\n					<thead>\n						<tr>\n							<th colspan="9">\n								<div class="row">\n									<div class="col-md-6">\n										<select class="form-control input-small select2me" data-ng-model="conf.chatEnquiriesByPage">\n											<option value="10">10</option>\n											<option value="25">25</option>\n											<option value="50">50</option>\n											<option value="{{chatEnquiries.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n										</select>\n									</div>\n									<div class="col-md-6">\n										<div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search"/>\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div>\n									</div>\n								</div>\n							</th>\n						</tr>\n						<tr>\n							<th st-sort="type">{{ \'APPLICATION_USERNAME\' | translate }}</th>\n							<th st-sort="users">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n							<th st-sort="createdAt">{{ \'APPLICATION_TIME\' | translate }}</th>\n						</tr>\n					</thead>\n					<tbody>\n						<tr data-ng-repeat="chatEnquiry in displayedChatEnquiries" data-ng-click="$location.path(\'/chat/statistics/enquiry/\' + chatEnquiry.id)">\n							<td style="text-align: center;">{{chatEnquiry.username}}</td>\n							<td style="text-align: center;">{{chatEnquiry.email}}</td>\n							<td style="text-align: center;">\n								<time is="relative-time" datetime="{{chatEnquiry.createdAt}}">\n									April 1, 2014\n								</time>\n							</td>\n						</tr>\n					</tbody>\n					<tfoot>\n						<tr>\n							<td colspan="9" class="text-center">\n								<div st-pagination class="pagination" st-items-by-page="conf.chatEnquiriesByPage" st-displayed-pages="7"></div>\n							</td>\n						</tr>\n					</tfoot>\n			</div>\n			</table>\n			<!-- END TABLE -->\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.enquiry.view.html",'<!-- BEGIN PAGE CONTENT-->\n<div data-ng-init="initEnquiryView()">\n	<div class="col-md-6">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-book-open font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TEXT\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="chatEnquiry" filename="chatEnquery.csv">\n					<i class="icon-cloud-download"></i></a>\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- BEGIN PAGE CONTENT-->\n				<div class="note note-warning">\n					<h4 class="block">{{chatEnquiry.ChatVisitor.fullname}} -\n						<time is="relative-time" datetime="{{chatEnquiry.createdAt}}">\n							April 1, 2014\n						</time>\n					</h4>\n					<p>\n						 {{chatEnquiry.text}}\n					</p>\n				</div>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n	<div class="col-md-6">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-user font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_VISITOR\' | translate }}:</a> </span>\n					<span class="caption-helper">{{chatEnquiry.ChatVisitor.fullname}}</span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.fullname">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_FULLNAME\' | translate}}\n					</div>\n					<div class="col-md-8 value">\n						{{chatEnquiry.ChatVisitor.fullname}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.email">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_EMAIL\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.email}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.remote_address">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.remote_address}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.referer">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REFERER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.referer}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.browser">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_BROWSER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.browser}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.engine">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ENGINE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.engine}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.os">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_OS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.os}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.device">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_DEVICE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.device}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.country">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_COUNTRY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.country}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.region">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REGION\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.region}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.city">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_CITY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.city}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.latitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LATITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.latitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.longitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LONGITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.longitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.createdAt">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						<time is="relative-time" datetime="{{chatEnquiry.ChatVisitor.createdAt}}">\n							April 1, 2014\n						</time>\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-bubble"></i>\n					<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-eyeglass"></i>\n					<a href="/chat/statistics">{{ \'APPLICATION_STATISTICS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img src="assets/images/media/statistics.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<!-- <div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{chatWebsite.name}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{chatWebsite.address}}\n					</div>\n				</div> -->\n				<!-- END SIDEBAR USER TITLE -->\n				<!-- SIDEBAR BUTTONS -->\n				<!-- <div class="profile-userbuttons">\n					<button type="button" class="btn btn-circle green-haze btn-sm">Follow</button>\n					<button type="button" class="btn btn-circle btn-danger btn-sm">Message</button>\n				</div> -->\n				<!-- END SIDEBAR BUTTONS -->\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.chat.statistics.summary\')}">\n							<a ng-href="/chat/statistics/summary">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_SUMMARY\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.chat.statistics.enquiry\') || $state.is(\'main.chat.statistics.enquiries\')}">\n							<a ng-href="/chat/statistics/enquiries">\n							<i class="icon-question"></i>\n							{{ \'APPLICATION_ENQUIRIES\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.chat.statistics.conversation\') || $state.is(\'main.chat.statistics.conversations\')}">\n							<a ng-href="/chat/statistics/conversations">\n							<i class="icon-notebook"></i>\n							{{ \'APPLICATION_CONVERSATIONS\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.chat.statistics.visitor\') || $state.is(\'main.chat.statistics.visitors\')}">\n							<a ng-href="/chat/statistics/visitors">\n							<i class="icon-users"></i>\n							{{ \'APPLICATION_VISITORS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.summary.html",'<div class="col-md-12">\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered" data-ng-show="online">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-notebook font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_LOCATIONS\' | translate }}</a> </span>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<map center="0, 0" zoom="2">\n				<marker data-ng-show="chatVisitor.latitude && chatVisitor.longitude" data-ng-repeat="chatVisitor in chatVisitors" position="{{chatVisitor.latitude}}, {{chatVisitor.longitude}}" title="{{chatVisitor.fullname}}"></marker>\n			</map>\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n\n\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-notebook font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_CONVERSATIONS\' | translate }}</a> </span>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<div class="row">\n				<div class="col-md-6">\n					<div class="portlet sale-summary">\n						<div class="portlet-body">\n							<ul class="list-unstyled">\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_OPENED\' | translate }} <i class="fa fa-img-up"></i>\n									</span>\n									<span class="sale-num">\n									{{ (chatRooms | filter:{ status:\'open\' }).length }} </span>\n								</li>\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_CLOSED\' | translate }} <i class="fa fa-img-down"></i>\n									</span>\n									<span class="sale-num">\n									{{ (chatRooms | filter:{ status:\'close\' }).length }} </span>\n								</li>\n							</ul>\n						</div>\n					</div>\n				</div>\n				<div class="col-md-6">\n					<canvas class="chart chart-pie" data="[(chatRooms | filter:{ status:\'open\' }).length, (chatRooms | filter:{ status:\'close\' }).length]" labels="[$translate.instant(\'APPLICATION_OPENED\'), $translate.instant(\'APPLICATION_CLOSED\')]" legend="true"></canvas>\n				</div>\n			</div>\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-users font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<div class="row">\n				<div class="col-md-6">\n					<div class="portlet sale-summary">\n						<div class="portlet-body">\n							<ul class="list-unstyled">\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_PENDING\' | translate }} <i class="fa fa-img-up"></i>\n									</span>\n									<span class="sale-num">\n									{{ (chatVisitors | filter:{ status:\'pending\' }).length }} </span>\n								</li>\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_SERVED\' | translate }} <i class="fa fa-img-down"></i>\n									</span>\n									<span class="sale-num">\n									{{ (chatVisitors | filter:{ status:\'served\' }:true).length }} </span>\n								</li>\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_UNSERVED\' | translate }} </span>\n									<span class="sale-num">\n									{{ (chatVisitors | filter:{ status:\'unserved\' }).length }} </span>\n								</li>\n							</ul>\n						</div>\n					</div>\n				</div>\n				<div class="col-md-6">\n					<canvas class="chart chart-pie" data="[(chatVisitors | filter:{ status:\'pending\' }).length, (chatVisitors | filter:{ status:\'served\' }:true).length, (chatVisitors | filter:{ status:\'unserved\' }).length]" labels="[$translate.instant(\'APPLICATION_PENDING\'), $translate.instant(\'APPLICATION_SERVED\'), $translate.instant(\'APPLICATION_UNSERVED\')]" legend="true"></canvas>\n				</div>\n			</div>\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-question font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_ENQUIRIES\' | translate }}</a> </span>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<div class="row">\n				<div class="col-md-6">\n					<div class="portlet sale-summary">\n						<div class="portlet-body">\n							<ul class="list-unstyled">\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_READ\' | translate }}<i class="fa fa-img-up"></i>\n									</span>\n									<span class="sale-num">\n									{{(chatEnquiries | filter:{ read:true }).length}} </span>\n								</li>\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_UNREAD\' | translate }}<i class="fa fa-img-down"></i>\n									</span>\n									<span class="sale-num">\n									{{(chatEnquiries | filter:{ read:false }).length}} </span>\n								</li>\n							</ul>\n						</div>\n					</div>\n				</div>\n				<div class="col-md-6">\n					<canvas class="chart chart-pie" data="[(chatEnquiries | filter:{ read:true }).length, (chatEnquiries | filter:{ read:false }).length]" labels="[$translate.instant(\'APPLICATION_READ\'), $translate.instant(\'APPLICATION_UNREAD\')]" legend="true" ng-show="true"></canvas>\n				</div>\n			</div>\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n</div>\n'),a.put("app/chat/statistic/statistic.visitor.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="col-md-12">\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-users font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n			</div>\n			<div class="actions">\n				<a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedChatVisitors" filename="visitors.csv">\n				<i class="icon-cloud-download"></i></a>\n				<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<!-- START TABLE -->\n			<table st-table="displayedChatVisitors" st-safe-src="chatVisitors" class="table table-bordered table-hover">\n				<div class="table-responsive">\n					<thead>\n						<tr>\n							<th colspan="9">\n								<div class="row">\n									<div class="col-md-6">\n										<select class="form-control input-small select2me" data-ng-model="conf.chatVisitorsByPage">\n											<option value="10">10</option>\n											<option value="25">25</option>\n											<option value="50">50</option>\n											<option value="{{chatVisitors.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n										</select>\n									</div>\n									<div class="col-md-6">\n										<div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div>\n									</div>\n								</div>\n							</th>\n						</tr>\n						<tr>\n							<th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n							<th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n							<th st-sort="remote_address">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n							<th st-sort="referer">{{ \'APPLICATION_ORIGIN\' | translate }}</th>\n							<th st-sort="device">{{ \'APPLICATION_DEVICE\' | translate }}</th>\n							<th st-sort="browser">{{ \'APPLICATION_BROWSER\' | translate }}</th>\n							<th st-sort="visitor_language">{{ \'APPLICATION_LANGUAGES\' | translate }}</th>\n							<th st-sort="status">{{ \'APPLICATION_STATUS\' | translate }}</th>\n							<th st-sort="createdAt">{{ \'APPLICATION_TIME\' | translate }}</th>\n						</tr>\n					</thead>\n					<tbody>\n						<tr data-ng-repeat="chatVisitor in displayedChatVisitors" data-ng-click="$location.path(\'/chat/statistics/visitor/\' + chatVisitor.id)">\n							<td>{{chatVisitor.fullname}}</td>\n							<td>{{chatVisitor.email}}</td>\n							<td>{{chatVisitor.remote_address}}</td>\n							<td>{{chatVisitor.referer}}</td>\n							<td class="centered-td">{{chatVisitor.device ? chatVisitor.device : \'--\'}}</td>\n							<td class="centered-td">\n								<img data-ng-show="chatVisitor.browser.includes(\'Chrome\')" data-ng-src="assets/images/browsers/chrome/chrome_16x16.png" data-title="{{chatVisitor.browser}}" bs-tooltip>\n								<img data-ng-show="chatVisitor.browser.includes(\'Safari\')" data-ng-src="assets/images/browsers/safari/safari_16x16.png">\n								<img data-ng-show="chatVisitor.browser.includes(\'Firefox\')" data-ng-src="assets/images/browsers/firefox/firefox_16x16.png">\n								<img data-ng-show="chatVisitor.browser.includes(\'Explorer\')" data-ng-src="assets/images/browsers/internet-explorer/internet-explorer_16x16.png">\n							</td>\n							<td class="centered-td">\n								<img data-ng-show="chatVisitor.visitor_language.includes(\'IT\') || chatVisitor.visitor_language.includes(\'it\')" data-ng-src="assets/images/flags/it.png">\n								<img data-ng-show="chatVisitor.visitor_language.includes(\'US\') || chatVisitor.visitor_language.includes(\'us\')" data-ng-src="assets/images/flags/us.png">\n								<img data-ng-show="chatVisitor.visitor_language.includes(\'EN\') || chatVisitor.visitor_language.includes(\'en\')" data-ng-src="assets/images/flags/en_EN.png">\n							</td>\n							<td class="centered-td">\n								<span class="label label-sm label-success" data-ng-class="{\'label-warning\': chatVisitor.status == \'pending\', \'label-danger\': chatVisitor.status == \'unserved\'}">\n									{{ $translate.instant(\'APPLICATION_\' + $filter(\'uppercase\')(chatVisitor.status)) }}\n								</span>\n							</td>\n							<td style="text-align: center;">\n								<time is="relative-time" datetime="{{chatVisitor.createdAt}}">\n									April 1, 2014\n								</time>\n							</td>\n						</tr>\n					</tbody>\n					<tfoot>\n						<tr>\n							<td colspan="9" class="text-center">\n								<div st-pagination class="pagination" st-items-by-page="conf.chatVisitorsByPage" st-displayed-pages="7"></div>\n							</td>\n						</tr>\n					</tfoot>\n			</div>\n			</table>\n			<!-- END TABLE -->\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.visitor.view.html",'<!-- BEGIN PAGE CONTENT-->\n<div data-ng-init="initVisitorView()">\n	<div class="col-md-6">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-pin font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_LOCATION\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- BEGIN PAGE CONTENT-->\n				<map center="{{chatVisitor.latitude}}, {{chatVisitor.longitude}}" zoom="8">\n					<marker position="{{chatVisitor.latitude}}, {{chatVisitor.longitude}}" title="{{chatVisitor.fullname}}"></marker>\n				</map>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n	<div class="col-md-6">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-user font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_VISITOR\' | translate }}:</a> </span>\n					<span class="caption-helper">{{chatVisitor.fullname}}</span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row static-info" data-ng-show="chatVisitor.longitude && chatVisitor.latitude">\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.fullname">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_FULLNAME\' | translate}}\n					</div>\n					<div class="col-md-8 value">\n						{{chatVisitor.fullname}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.email">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_EMAIL\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.email}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.remote_address">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.remote_address}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.referer">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REFERER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.referer}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.browser">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_BROWSER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.browser}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.engine">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ENGINE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.engine}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.os">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_OS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.os}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.device">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_DEVICE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.device}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.country">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_COUNTRY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.country}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.region">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REGION\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.region}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.city">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_CITY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.city}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.latitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LATITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.latitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.longitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LONGITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.longitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.createdAt">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						<time is="relative-time" datetime="{{chatVisitor.createdAt}}">\n							April 1, 2014\n						</time>\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/chat/timeline/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-list"></i>\n						<a href="/mail/timeline/list"> Timeline</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n	<div class="col-md-12">\n    <h3 class="page-title">\n				Timeline\n			</h3>\n			<!-- END PAGE HEADER-->\n			<!-- BEGIN PAGE CONTENT-->\n			<div class="timeline">\n				<!-- TIMELINE ITEM -->\n				<div class="timeline-item" data-ng-repeat="event in events | orderBy:\'-id\'"  ng-animate=" \'animate\' ">\n					<div class="timeline-badge">\n						<div class="timeline-icon">\n							<i class="icon-envelope font-green-haze"></i>\n						</div>\n					</div>\n					<div class="timeline-body">\n						<div class="timeline-body-arrow"></div>\n						<div class="timeline-body-head">\n							<div class="timeline-body-head-caption">\n								<span class="timeline-body-alerttitle" data-ng-class="{\'font-red\': event.name == \'INCOMING\', \'font-blue\': event.name == \'ATTEMPT\', \'font-green\': event.name == \'TAKEN\'}">{{event.name | uppercase}}</span>\n								<span class="timeline-body-time font-grey-cascade">at {{event.createdAt | date:\'yyyy-MM-dd HH:mm:ss\'}}</span>\n							</div>\n							<div class="timeline-body-head-actions">\n								<div class="btn-group">\n									<a class="btn btn-circle btn-sm dropdown-toggle btn-success" href="/mail/inbox/room/{{event.MailRoomId}}">Go To Mail</a>\n								</div>\n							</div>\n						</div>\n						<div class="timeline-body-content">\n							<span class="font-grey-cascade" data-ng-show="event.User">\n							{{event.MailRoom.subject ? event.MailRoom.subject + \' - \' : \'\'}}<a href="/agents/view/{{event.UserId}}/account">{{event.User.fullname}}</a>\n							</span>\n						</div>\n					</div>\n				</div>\n				<!-- END TIMELINE ITEM -->\n			</div>\n			<!-- END PAGE CONTENT-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-bubble"></i>\n						<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-globe"></i>\n						<a href="/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_WEB_SITES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="chatWebsites.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_WEB_SITE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<!-- <li>\n								<a href="#" data-ng-click="open()">\n								<i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n							</li> -->\n							<li>\n								<a href="/chat/websites/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n							<!-- <li>\n								<a href="#">\n								<i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n							</li> -->\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getChatWebsites([\'name\', \'address\', \'description\', \'remote\'])" csv-header="[\'Name\', \'Address\', \'Description\', \'Remote\']" field-separator=";" filename="chat_websites.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedChatWebsites" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.chatWebsitesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="chatWebsiteByPage in chatWebsitesByPage | filter: $select.search">\n													<div ng-bind-html="chatWebsiteByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n						    <th st-sort="address">{{ \'APPLICATION_WEB_ADDRESS\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="chatWebsite in displayedChatWebsites" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="chatWebsites.checked" checklist-value="chatWebsite.id"></td>\n					      <td>{{chatWebsite.name}}</td>\n								<td>{{chatWebsite.description}}</td>\n					      <td><a ng-href="{{chatWebsite.address}}">{{chatWebsite.address}}</a></td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/chat/websites/view/{{chatWebsite.id}}/snippet/view">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(chatWebsite.name,chatWebsite.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedChatWebsites.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{\'MESSAGE_NO_AVAILABLE_WEBSITES\' | translate}}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="address" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_WEB_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.chatWebsitesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/view/action/list/list.html",'<div class="row" data-ng-init="initActons()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/chat/websites/view/{{chatWebsite.id}}/actions/wizard" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACTION\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th class="input-small" align="center">{{\'APPLICATION_APPLICATION\' | translate}}</th>\n								<th class="input-small" align="center">{{\'APPLICATION_TIMEOUT\' | translate}} [s]</th>\n						    <th align="center">{{ \'APPLICATION_INTERVAL\' | translate }}</th>\n								<th class="input-small">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody ui-sortable="sortableOptions" data-ng-model="chatApplications">\n					    <tr data-ng-repeat="application in chatApplications">\n								<td align="center">\n									<span>\n										<i data-ng-class="application.User ? \'icon-user\' : \'icon-docs\'"></i>\n									</span>\n								</td>\n								<td align="center">{{application.timeout}}</td>\n								<td align="center">{{application.Interval ? application.Interval.name : application.interval}}</td>\n								<td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/chat/websites/view/{{chatWebsite.id}}/actions/view/{{application.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app, application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="chatApplications.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No applications available</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/chat/website/view/action/view/view.html",'\n<div class="row" data-ng-init="initAction()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-directions font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.settings" ng-submit="updateItem()" novalidate>\n					<!-- START APP -->\n					<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n						<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n						<ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n							<ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n							<ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n								<div ng-bind-html="app.name | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n						<span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END APP -->\n\n					<!-- START HOST -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n						<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n						<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n						<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END HOST -->\n\n					<div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n						<!-- START QUEUE -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n							<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select class="input-medium" data-ng-model="application.ChatQueueId" name="queue" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n								<ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n									<div ng-bind-html="queue.name | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END QUEUE -->\n					</div>\n\n					<div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n						<!-- START AGENT -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$invalid}">\n							<label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n								<ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n									<div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END AGENT -->\n					</div>\n\n					<!-- START INTERVAL_TYPE -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$invalid}">\n						<label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n						<ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n							<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n							<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n								{{ intType.name | translate }}\n							</ui-select-choices>\n						</ui-select>\n						<span data-ng-show="(forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END INTERVAL_TYPE -->\n\n					<div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n						<!-- START TIME -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n							<div class="input-group input-large">\n								<fieldset class="pull-left" ng-disabled="application.alwaysTime">\n									<uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n								</fieldset>\n								<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n								<fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n								<!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n							</div>\n						</div>\n						<!-- END TIME -->\n\n						<!-- START ALWAYS -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n							<div class="input-group input-large">\n								<label class="control-label pointer-cursor">\n									<input\n										bs-switch\n										data-ng-model="application.alwaysTime"\n										type="checkbox"\n										switch-active="{{ isActive }}"\n										switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n										switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n										switch-on-color="{{ onColor }}"\n										switch-off-color="{{ offColor }}"\n										switch-animate="{{ animate }}"\n										switch-size="{{ size }}"\n										switch-label="{{ label }}"\n										switch-icon="{{ icon }}"\n										switch-radio-off="{{ radioOff }}"\n										switch-label-width="{{ labelWidth }}"\n										switch-handle-width="{{ handleWidth }}">\n									<!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n								</label>\n							</div>\n						</div>\n						<!-- END ALWAYS -->\n\n						<!-- START WEEKDAY -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n										{{ weekDay.name | translate}}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n										{{ weekDay.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END WEEKDAY -->\n\n						<!-- START MONTHDAY -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n									<ui-select-match>{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n										{{monthDay}}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n									<ui-select-match>{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n										{{monthDay}}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END MONTHDAY -->\n\n						<!-- START MONTH -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n										{{ month.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n										{{ month.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END MONTH -->\n					</div>\n\n					<div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n						<!-- START INTERVALS -->\n						<div class="form-group inpu" data-ng-class="{\'has-error\': (forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$invalid}">\n							<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n								<ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n									{{ interval.name}}\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END INTERVALS -->\n\n					</div>\n					<button class="btn green-haze" type="submit">{{\'APPLICATION_UPDATE\' | translate}}</button>\n				</form>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/view/action/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-directions font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.action.$valid)">\n						<form name="forms.action" novalidate>\n							<!-- START APP -->\n							<div class="form-group"  data-ng-class="{\'has-error\': forms.action.$submitted && forms.action.app.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n									<ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n										<div ng-bind-html="app.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.action.$submitted && forms.action.app.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END APP -->\n\n							<!-- START HOST -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n								<span data-ng-show="(forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid && forms.action.timeout.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END HOST -->\n\n							<div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n								<!-- START QUEUE -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$invalid}">\n									<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.ChatQueueId" name="queue" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n											<div ng-bind-html="queue.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END QUEUE -->\n							</div>\n\n							<div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n								<!-- START AGENT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$invalid}">\n									<label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n										<ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n											<div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END AGENT -->\n							</div>\n\n							<!-- START INTERVAL_TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n										{{ intType.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="(forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERVAL_TYPE -->\n\n							<div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n								<!-- START TIME -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n									<div class="input-group input-large">\n										<fieldset class="pull-left" ng-disabled="application.alwaysTime">\n											<uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n										</fieldset>\n										<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n										<fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n										<!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n									</div>\n								</div>\n								<!-- END TIME -->\n\n								<!-- START ALWAYS -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n									<div class="input-group input-large">\n										<label class="control-label pointer-cursor">\n											<input\n												bs-switch\n												data-ng-model="application.alwaysTime"\n												type="checkbox"\n												switch-active="{{ isActive }}"\n												switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n												switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n												switch-on-color="{{ onColor }}"\n												switch-off-color="{{ offColor }}"\n												switch-animate="{{ animate }}"\n												switch-size="{{ size }}"\n												switch-label="{{ label }}"\n												switch-icon="{{ icon }}"\n												switch-radio-off="{{ radioOff }}"\n												switch-label-width="{{ labelWidth }}"\n												switch-handle-width="{{ handleWidth }}">\n											<!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n										</label>\n									</div>\n								</div>\n								<!-- END ALWAYS -->\n\n								<!-- START WEEKDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{ weekDay.name | translate}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{ weekDay.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END WEEKDAY -->\n\n								<!-- START MONTHDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTHDAY -->\n\n								<!-- START MONTH -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{ month.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{ month.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTH -->\n							</div>\n\n							<div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n								<!-- START INTERVALS -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n											{{ interval.name}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVALS -->\n\n							</div>\n\n							<input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONTINUE\' | translate}}"/>\n						</form>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<!-- <button class="btn green-haze" type="button" wz-previous><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button> -->\n						<input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/chat/website/view/snippet/view/view.html",'<div class="row" data-ng-init="getSnippetCode()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SNIPPET\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_EMBEDDING\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_APPEARANCE\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FORMS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_4" data-toggle="tab">{{\'APPLICATION_LABELS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_5" data-toggle="tab">{{\'APPLICATION_SETTINGS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="row">\n						<div class="col-md-8">\n							<div class="tab-content">\n								<!-- EMBEDDING TAB -->\n								<div class="tab-pane active" id="tab_1_1">\n									<h3>{{\'APPLICATION_EMBED_SNIPPET\' | translate}}</h3>\n									<p>\n										{{\'MESSAGE_EMBED_SNIPPET\' | translate}}\n									</p>\n									<div class="form-body">\n										<div class="form-group">\n											<div class="col-md-12">\n												<textarea name="snippet" rows="13" style="resize:none;cursor:text;" class="form-control" readonly data-ng-model="snippetCode"></textarea>\n											</div>\n										</div>\n									</div>\n								</div>\n								<!-- END EMBEDDING TAB -->\n\n								<!-- APPEARANCE TAB -->\n								<div class="tab-pane" id="tab_1_2">\n									<form name="forms.formAppearance" data-ng-submit="forms.formAppearance.$valid && updateItem()" novalidate>\n\n										<!-- START MAIN COLOR -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.host.$invalid}">\n											<label class="control-label">{{\'APPLICATION_MAIN_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input colorpicker type="text" name="mainColor" placeholder="{{\'APPLICATION_MAIN_COLOR\' | translate}}" style="color:{{chatWebsite.color}}" class="form-control" data-ng-model="chatWebsite.color" required/>\n											<span data-ng-show="(forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.mainColor.$invalid && forms.formAppearance.mainColor.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END MAIN COLOR -->\n\n										<!-- START FOCUS COLOR -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid}">\n											<label class="control-label">{{\'APPLICATION_FOCUS_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input colorpicker type="text" name="focusColor" placeholder="{{\'APPLICATION_FOCUS_COLOR\' | translate}}" style="color:{{chatWebsite.color_focus}}" class="form-control" data-ng-model="chatWebsite.color_focus" required/>\n											<span data-ng-show="(forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid && forms.formAppearance.focusColor.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END FOCUS COLOR -->\n\n										<!-- START BUTTON COLOR -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid}">\n											<label class="control-label">{{\'APPLICATION_BUTTON_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input colorpicker type="text" name="buttonColor" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" style="color:{{chatWebsite.color_button}}" class="form-control" data-ng-model="chatWebsite.color_button" required/>\n											<span data-ng-show="(forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid && forms.formAppearance.buttonColor.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END BUTTON COLOR -->\n\n										<!-- START HEADER SHAPE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.headerShape.$touched || forms.formAppearance.$submitted) && forms.formAppearance.headerShape.$invalid}">\n											<label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n											<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n											<ui-select data-ng-model="chatWebsite.header_shape" name="headerShape" theme="bootstrap">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}</ui-select-match>\n												<ui-select-choices repeat="headerShape in [\'rounded\',\'squared\'] | filter: $select.search">\n													<div ng-bind-html="$translate.instant(\'APPLICATION_\' + headerShape.toUpperCase()) | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<!-- END HEADER SHAPE -->\n\n										<!-- START ANIMATION TOGGLE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.animationToggle.$touched || forms.formAppearance.$submitted) && forms.formAppearance.animationToggle.$invalid}">\n											<label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n											<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n											<ui-select data-ng-model="chatWebsite.animation" name="animationToggle" theme="bootstrap">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n												<ui-select-choices repeat="animationToggle in [true, false] | filter: $select.search">\n													<div ng-bind-html="animationToggle ? \'On\' : \'Off\' | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<!-- END ANIMATION TOGGLE -->\n\n\n										<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n									</form>\n								</div>\n								<!-- END APPEARANCE TAB -->\n\n								<!-- FORMS TAB -->\n								<div class="tab-pane" id="tab_1_3">\n									<form name="forms.formFunctionality" data-ng-submit="forms.formFunctionality.$valid && updateItem()" novalidate>\n\n										<!-- START DOWNLOAD TRANSCRIPT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formFunctionality.animationToggle.$touched || forms.formFunctionality.$submitted) && forms.formFunctionality.animationToggle.$invalid}">\n											<label class="control-label">{{\'APPLICATION_DOWNLOAD_TRANSCRIPT\' | translate}}</label>\n											<ui-select data-ng-model="chatWebsite.download_transcript" name="downloadTranscript" theme="bootstrap">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n												<ui-select-choices repeat="downloadTranscript in [true, false] | filter: $select.search">\n													<div ng-bind-html="downloadTranscript ? \'On\' : \'Off\' | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<!-- END DOWNLOAD TRANSCRIPT -->\n\n										<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n									</form>\n								</div>\n								<!-- END FORMS TAB -->\n\n								<!-- STRINGS TAB -->\n								<div class="tab-pane" id="tab_1_4">\n									<form name="forms.formLabel" data-ng-submit="forms.formLabel.$valid && updateItem()" novalidate>\n\n										<h4 class="block" data-ng-show="statePreview.state == \'online\'">{{\'APPLICATION_ONLINE_STATE\' | translate}}</h4>\n\n										<!-- START HEADER ONLINE -->\n										<div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.headerOnline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n											<label class="control-label">{{\'APPLICATION_HEADER_ONLINE\' | translate}}</label>\n											<input type="text" name="headerOnline" placeholder="{{\'APPLICATION_HEADER_ONLINE\' | translate}}" class="form-control" data-ng-model="chatWebsite.header_online"/>\n										</div>\n										<!-- END HEADER ONLINE -->\n\n										<!-- START ONLINE MESSAGE-->\n										<div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.onlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n											<label class="control-label">{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}</label>\n											<input type="text" name="onlineMessage" placeholder="{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="chatWebsite.online_message"/>\n										</div>\n										<!-- END HEADER ONLINE -->\n\n										<!-- START USERNAME PLACEHOLDER -->\n										<div class="form-group" data-ng-show="statePreview.state == \'online\' || statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.usernamePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.usernamePlaceholder.$invalid}">\n											<label class="control-label">{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}</label>\n											<input type="text" name="usernamePlaceholder" placeholder="{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.username_placeholder"/>\n										</div>\n										<!-- END USERNAME PLACEHOLDER -->\n\n										<!-- START EMAIL PLACEHOLDER -->\n										<div class="form-group" data-ng-show="statePreview.state == \'online\' || statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.emailPlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.emailPlaceholder.$invalid}">\n											<label class="control-label">{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}</label>\n											<input type="text" name="emailPlaceholder" placeholder="{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.email_placeholder"/>\n										</div>\n										<!-- END EMAIL PLACEHOLDER -->\n\n										<!-- START START CHAT BUTTON -->\n										<div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.startChatButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n											<label class="control-label">{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}</label>\n											<input type="text" name="startChatButton" placeholder="{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.start_chat_button"/>\n										</div>\n										<!-- END START CHAT BUTTON -->\n\n										<h4 class="block" data-ng-show="statePreview.state == \'offline\'">{{\'APPLICATION_OFFLINE_STATE\' | translate}}</h4>\n\n										<!-- START HEADER OFFLINE -->\n										<div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.headerOffline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n											<label class="control-label">{{\'APPLICATION_HEADER_OFFLINE\' | translate}}</label>\n											<input type="text" name="headerOffline" placeholder="{{\'APPLICATION_HEADER_OFFLINE\' | translate}}" class="form-control" data-ng-model="chatWebsite.header_offline"/>\n										</div>\n										<!-- END HEADER OFFLINE -->\n\n										<!-- START OFFLINE MESSAGE-->\n										<div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.offlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n											<label class="control-label">{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}</label>\n											<input type="text" name="offlineMessage" placeholder="{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="chatWebsite.offline_message"/>\n										</div>\n										<!-- END OFFLINE MESSAGE -->\n\n										<!-- START ENQUIRY MESSAGE PLACEHOLDER-->\n										<div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.enquiryMessagePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n											<label class="control-label">{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}</label>\n											<input type="text" name="enquiryMessagePlaceholder" placeholder="{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_message_placeholder"/>\n										</div>\n										<!-- END ENQUIRY MESSAGE PLACEHOLDER -->\n\n										<!-- START ENQUIRY BUTTON -->\n										<div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.enquiryButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n											<label class="control-label">{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}</label>\n											<input type="text" name="enquiryButton" placeholder="{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_button"/>\n										</div>\n										<!-- END ENQUIRY BUTTON -->\n\n										<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n									</form>\n								</div>\n								<!-- END STRINGS TAB -->\n\n								<!-- SETTINGS TAB -->\n								<div class="tab-pane" id="tab_1_5">\n									<form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n\n										<!-- START NAME -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSetting.name.$invalid}">\n											<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="chatWebsite.name" required/>\n											<span data-ng-show="(forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSettings.name.$invalid && forms.formSetting.name.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END NAME -->\n\n										<!-- START ADDRESS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid}">\n											<label class="control-label">{{\'APPLICATION_WEB_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input type="url" name="address" placeholder="{{\'APPLICATION_WEB_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.address" required/>\n											<span data-ng-show="(forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid && forms.formSetting.address.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END ADDRESS -->\n\n										<!-- START REMOTE IP -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid}">\n											<label class="control-label">{{\'APPLICATION_MOTION_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input type="url" name="remote" placeholder="{{\'APPLICATION_MOTION_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.remote" required/>\n											<span data-ng-show="(forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid && forms.formSetting.remote.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END REMOTE IP -->\n\n										<!-- START DESCRIPTION -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.description.$touched || forms.formSetting.$submitted) && forms.formSetting.description.$invalid}">\n											<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n											<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="chatWebsite.description"/>\n										</div>\n										<!-- END DESCRIPTION -->\n\n										<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n									</form>\n								</div>\n								<!-- END SETTINGS TAB -->\n							</div>\n						</div>\n						<div class="col-md-4">\n							<!-- START STATE -->\n							<div class="form-group">\n								<!-- <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label> -->\n								<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n								<ui-select data-ng-model="statePreview.state" name="statePreview" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="statePreview in [\'online\',\'offline\'] | filter: $select.search">\n										<div ng-bind-html="statePreview | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n							</div>\n							<!-- END STATE -->\n							<preview></preview>\n						</div>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/chat/website/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-bubble"></i>\n					<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-globe"></i>\n					<a href="/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{chatWebsite.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img src="assets/images/media/website.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{chatWebsite.name}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{chatWebsite.address}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.includes(\'main.chat.websites.view.snippet\')}">\n							<a ng-href="/chat/websites/view/{{chatWebsite.id}}/snippet/view">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SNIPPET\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.includes(\'main.chat.websites.view.actions\')}">\n							<a ng-href="/chat/websites/view/{{chatWebsite.id}}/actions/list">\n							<i class="icon-directions"></i>\n							{{ \'APPLICATION_ACTIONS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-bubble"></i>\n						<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-globe"></i>\n						<a href="/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_WEB_SITE\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_WEB_SITE_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n						<form name="forms.formSetting" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.formSetting.name.$touched && !forms.formSettings.name.$valid && forms.formSetting.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid}">\n								<label class="control-label">{{\'APPLICATION_WEB_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="address" placeholder="{{\'APPLICATION_WEB_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.address" required/>\n								<span data-ng-show="(forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid && forms.formSetting.address.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ADDRESS -->\n\n							<!-- START REMOTE IP -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MOTION_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remote" placeholder="{{\'APPLICATION_MOTION_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remote" required/>\n								<span data-ng-show="(forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid && forms.formSetting.remote.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END REMOTE IP -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.form.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_WEB_SITE_APPEARANCE\' | translate}}" canexit="exitValidation(forms.formAppearance.$valid)">\n						<form name="forms.formAppearance" novalidate>\n\n							<!-- START MAIN COLOR -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.host.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MAIN_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input colorpicker type="text" name="mainColor" placeholder="{{\'APPLICATION_MAIN_COLOR\' | translate}}" style="color:{{item.color}}" class="form-control" data-ng-model="item.color" required/>\n								<span data-ng-show="(forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.mainColor.$invalid && forms.formAppearance.mainColor.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MAIN COLOR -->\n\n							<!-- START FOCUS COLOR -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FOCUS_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input colorpicker type="text" name="focusColor" placeholder="{{\'APPLICATION_FOCUS_COLOR\' | translate}}" style="color:{{item.color_focus}}" class="form-control" data-ng-model="item.color_focus" required/>\n								<span data-ng-show="(forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid && forms.formAppearance.focusColor.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FOCUS COLOR -->\n\n							<!-- START BUTTON COLOR -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid}">\n								<label class="control-label">{{\'APPLICATION_BUTTON_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input colorpicker type="text" name="buttonColor" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" style="color:{{item.color_button}}" class="form-control" data-ng-model="item.color_button" required/>\n								<span data-ng-show="(forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid && forms.formAppearance.buttonColor.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END BUTTON COLOR -->\n\n							<!-- START HEADER SHAPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.headerShape.$touched || forms.formAppearance.$submitted) && forms.formAppearance.headerShape.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HEADER_SHAPE\' | translate}}</label>\n								<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="item.animation" required/> -->\n								<ui-select data-ng-model="item.header_shape" name="headerShape" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}</ui-select-match>\n									<ui-select-choices repeat="headerShape in [\'rounded\',\'squared\'] | filter: $select.search">\n										<div ng-bind-html="$translate.instant(\'APPLICATION_\' + headerShape.toUpperCase()) | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n							</div>\n							<!-- END HEADER SHAPE -->\n\n							<!-- START ANIMATION TOGGLE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.animationToggle.$touched || forms.formAppearance.$submitted) && forms.formAppearance.animationToggle.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n								<ui-select data-ng-model="item.animation" name="animationToggle" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected  ? \'On\' : \'Off\'}}</ui-select-match>\n									<ui-select-choices repeat="filter in [true,false] | filter: $select.search">\n										<div ng-bind-html="filter ? \'On\' : \'Off\' | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n							</div>\n							<!-- END ANIMATION TOGGLE -->\n\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_LABELS\' | translate}}" canexit="exitValidation(forms.formLabel.$valid)">\n						<form name="forms.formLabel" novalidate>\n\n							<!-- START HEADER ONLINE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.headerOnline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HEADER_ONLINE\' | translate}}</label>\n								<input type="text" name="headerOnline" placeholder="{{\'APPLICATION_HEADER_ONLINE\' | translate}}" class="form-control" data-ng-model="item.header_online"/>\n							</div>\n							<!-- END HEADER ONLINE -->\n\n							<!-- START ONLINE MESSAGE-->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.onlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}</label>\n								<input type="text" name="onlineMessage" placeholder="{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="item.online_message"/>\n							</div>\n							<!-- END HEADER ONLINE -->\n\n							<!-- START USERNAME PLACEHOLDER -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.usernamePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.usernamePlaceholder.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}</label>\n								<input type="text" name="usernamePlaceholder" placeholder="{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.username_placeholder"/>\n							</div>\n							<!-- END USERNAME PLACEHOLDER -->\n\n							<!-- START EMAIL PLACEHOLDER -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.emailPlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.emailPlaceholder.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}</label>\n								<input type="text" name="emailPlaceholder" placeholder="{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.email_placeholder"/>\n							</div>\n							<!-- END EMAIL PLACEHOLDER -->\n\n							<!-- START START CHAT BUTTON -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.startChatButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n								<label class="control-label">{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}</label>\n								<input type="text" name="startChatButton" placeholder="{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}" class="form-control" data-ng-model="item.start_chat_button"/>\n							</div>\n							<!-- END START CHAT BUTTON -->\n\n							<!-- START HEADER OFFLINE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.headerOffline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HEADER_OFFLINE\' | translate}}</label>\n								<input type="text" name="headerOffline" placeholder="{{\'APPLICATION_HEADER_OFFLINE\' | translate}}" class="form-control" data-ng-model="item.header_offline"/>\n							</div>\n							<!-- END HEADER OFFLINE -->\n\n							<!-- START OFFLINE MESSAGE-->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.offlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n								<label class="control-label">{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}</label>\n								<input type="text" name="offlineMessage" placeholder="{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="item.offline_message"/>\n							</div>\n							<!-- END OFFLINE MESSAGE -->\n\n							<!-- START ENQUIRY MESSAGE PLACEHOLDER-->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.enquiryMessagePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}</label>\n								<input type="text" name="enquiryMessagePlaceholder" placeholder="{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.enquiry_message_placeholder"/>\n							</div>\n							<!-- END ENQUIRY MESSAGE PLACEHOLDER -->\n\n							<!-- START ENQUIRY BUTTON -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.enquiryButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}</label>\n								<input type="text" name="enquiryButton" placeholder="{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}" class="form-control" data-ng-model="item.enquiry_button"/>\n							</div>\n							<!-- END ENQUIRY BUTTON -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_FORMS\' | translate}}" canexit="exitValidation(forms.formAppearance.$valid)">\n						<form name="forms.formFunctionality" novalidate>\n\n							<!-- START DOWNLOAD TRANSCRIPT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formFunctionality.animationToggle.$touched || forms.formFunctionality.$submitted) && forms.formFunctionality.animationToggle.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DOWNLOAD_TRANSCRIPT\' | translate}}</label>\n								<ui-select data-ng-model="item.download_transcript" name="downloadTranscript" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n									<ui-select-choices repeat="downloadTranscript in [true, false] | filter: $select.search">\n										<div ng-bind-html="downloadTranscript ? \'On\' : \'Off\' | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n							</div>\n							<!-- END DOWNLOAD TRANSCRIPT -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/contactmanager/company/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_COMPANY\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.company" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.company.name.$touched || forms.company.$submitted) && forms.company.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.cmopany.name.$touched || forms.company.$submitted) && forms.company.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.company.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/contactmanager/company/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-briefcase"></i>\n					<a href="/contactmanager/companies/list">{{ \'APPLICATION_COMPANIES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-briefcase font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_COMPANIES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Companies.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<button class="btn green-jungle " ng-click="create()">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_COMPANY\' | translate }}\n						</button>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getCompanies([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="companies.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedCompanies" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.companiesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="companyByPage in companiesByPage | filter: $select.search">\n													<div ng-bind-html="companyByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(company, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="company in displayedCompanies" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="Companies.checked" checklist-value="company.id"></td>\n								<td>{{company.name}}</td>\n					      <td>{{company.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/contactmanager/companies/view/{{company.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(company.name,company.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedCompanies.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_COMPANIES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.companiesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/company/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getCompany()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-briefcase"></i>\n					<a href="/contactmanager/companies/list">{{ \'APPLICATION_COMPANIES\' | translate }}</a>\n					<i data-ng-show="company" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="company">\n					<a href="#">{{company.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/company.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{company.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.contactmanager.companies.view.settings\')}">\n							<a data-ng-href="/contactmanager/companies/view/{{company.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/company/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_COMPANY\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_ADDRESS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_SHIPMENT_ADDRESS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateCompany()" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="company.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="company.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<!-- START STREET -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$invalid}">\n							<label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n							<input type="text" name="street" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="company.street"/>\n							<span data-ng-show="(forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END STREET -->\n\n						<!-- START POSTALCODE -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$invalid}">\n							<label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n							<input type="text" name="postalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="company.postalCode"/>\n							<span data-ng-show="(forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END POSTALCODE -->\n\n						<!-- START CITY -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$invalid}">\n							<label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n							<input type="text" name="city" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="company.city"/>\n							<span data-ng-show="(forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END CITY -->\n						<!-- START COUNTRY -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$invalid}">\n							<label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n							<input type="text" name="country" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="company.country"/>\n							<span data-ng-show="(forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END COUNTRY -->\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n					</div>\n					<div class="tab-pane" id="tab_1_3">\n						<!-- START STREET -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.sStreet.$touched || forms.general.$submitted) && forms.general.sStreet.$invalid}">\n							<label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n							<input type="text" name="sStreet" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="company.sStreet"/>\n							<span data-ng-show="(forms.general.sStreet.$touched || forms.general.$submitted) && forms.general.sStreet.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END STREET -->\n\n						<!-- START POSTALCODE -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.sPostalCode.$touched || forms.general.$submitted) && forms.general.sPostalCode.$invalid}">\n							<label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n							<input type="text" name="sPostalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="company.sPostalCode"/>\n							<span data-ng-show="(forms.general.sPostalCode.$touched || forms.general.$submitted) && forms.general.sPostalCode.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END POSTALCODE -->\n\n						<!-- START CITY -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.sCity.$touched || forms.general.$submitted) && forms.general.sCity.$invalid}">\n							<label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n							<input type="text" name="sCity" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="company.sCity"/>\n							<span data-ng-show="(forms.general.sCity.$touched || forms.general.$submitted) && forms.general.sCity.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END CITY -->\n						<!-- START COUNTRY -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.sCountry.$touched || forms.general.$submitted) && forms.general.sCountry.$invalid}">\n							<label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n							<input type="text" name="sCountry" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="company.sCountry"/>\n							<span data-ng-show="(forms.general.sCountry.$touched || forms.general.$submitted) && forms.general.sCountry.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END COUNTRY -->\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n					</div>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/contactmanager/contact/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="fa fa-users"></i>\n					<a href="/contactmanager/contacts/list">{{ \'APPLICATION_CONTACT_MANAGER\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="fa fa-users font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CONTACTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="contacts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<button class="btn green-jungle" data-ng-click="newContact();">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONTACT\' | translate }}\n						</button>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getContacts([\'mailbox\', \'fullname\', \'email\'])" csv-header="[\'name\', \'surname\', \'description\']" field-separator=";" filename="contacts.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedContacts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.contactsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="contactByPage in contactsByPage | filter: $select.search">\n													<div ng-bind-html="contactByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(contact, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="fullname">{{ \'APPLICATION_FULLNAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="contact in displayedContacts" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="contacts.checked" checklist-value="contact.id"></td>\n								<td>{{contact.fullname}} {{}}</td>\n					      <td>{{contact.description}}</td>\n					      <td>\n					        <button class="btn default btn-xs blue-stripe" data-ng-click="openContactTab(contact)">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </button>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(contact.fullname,contact.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedContacts.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_CONTACTS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="fullname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FULLNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.contactsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/dashboard/dashboard.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/dashboard/voice">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<div>\n		    <nav class="navbar navbar-default" role="navigation">\n		        <div class="navbar-header">\n		            <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n		                <span class="sr-only">Toggle navigation</span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		            </button>\n		            <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n		        </div>\n\n		        <!-- Collect the nav links, forms, and other content for toggling -->\n		        <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n		            <ul class="nav navbar-nav">\n									<!-- <li dropdown>\n											<a href="#" dropdown-toggle>\n													{{ \'APPLICATION_VOICE\' | translate }}\n													<b class=\'caret\'></b>\n											</a>\n											<tree tree=\'voice\'></tree>\n									</li>\n									<li dropdown>\n											<a href="#" dropdown-toggle>\n													{{ \'APPLICATION_MAIL\' | translate }}\n													<b class=\'caret\'></b>\n											</a>\n											<tree tree=\'mail\'></tree>\n									</li> -->\n		                <li data-ng-class="{active: $state.is(\'main.dashboard.voice\')}">\n		                    <a href="/dashboard/voice">\n													<b class=\'icon-earphones-alt\'></b>\n		                        {{ \'APPLICATION_VOICE\' | translate }}\n		                    </a>\n		                    <!-- <tree tree=\'voice\'></tree> -->\n		                </li>\n										<li data-ng-class="{active: $state.is(\'main.dashboard.mail\')}">\n		                    <a href="/dashboard/mail">\n													<b class=\'icon-envelope\'></b>\n		                        {{ \'APPLICATION_MAIL\' | translate }}\n		                    </a>\n		                    <!-- <tree tree=\'mail\'></tree> -->\n		                </li>\n		            </ul>\n		            <!-- <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_QUEUES\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'queues\'></tree>\n		                </li>\n		            </ul> -->\n		        </div>\n		        <!-- /.navbar-collapse -->\n		    </nav>\n		</div>\n		<div ui-view></div>\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/dashboard/mail/mail.html",'<div class="col-md-12">\nThis is the mail view.\n</div>\n'),a.put("app/dashboard/voice/voice.html",'<div class="row" ng-init=\'getQueueStats()\'>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat red-intense">\n      <div class="visual">\n        <i class="fa fa-comments"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.abandonedCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_ABANDONED\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat green-haze">\n      <div class="visual">\n        <i class="fa fa-bar-chart-o"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.completedCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_COMPLETED\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat purple-plum">\n      <div class="visual">\n        <i class="fa fa-shopping-cart"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.waitCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_WAIT\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat blue-madison">\n      <div class="visual">\n        <i class="fa fa-globe"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.activeCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_ACTIVE\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n</div>\n'),a.put("app/desk/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-handbag"></i>\n					<a href="/desk/list">{{ \'APPLICATION_DESK_COM\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-handbag font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_DESK_COM\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="accounts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle" href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/desk/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'authType\',\'consumerKey\',\'consumerSecret\',\'token\',\'tokenSecret\',\'password\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Authentication Type\', \'Consumer Key\', \'Consumer Secret\', \'Token\', \'Token Secret\', \'Password\']" field-separator=";" filename="desk_accounts.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedDeskAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n													<div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n								<th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n								<th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="account in displayedDeskAccounts" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n					      <td>{{account.name}}</td>\n					      <td>{{account.username}}</td>\n								<td>{{account.remoteUri}}</td>\n								<td>{{account.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/desk/view/{{account.id}}/account">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n									<a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n										{{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedDeskAccounts.length">\n								<td colspan="7" style="text-align:center;">\n									<i>No account available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="7" class="text-center">\n									<div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n					</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/desk/view/view.account.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n								<span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n								<span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START AUTH TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n								<label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n								<ui-select data-ng-model="account.authType" name="authType" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="type in [\'basic\', \'oauth\'] | filter: $select.search">\n										<div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="account.authType == \'basic\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n								<span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n							<!-- START CONSUMER KEY -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerKey.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_CONSUMER_KEY\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="consumerKey" placeholder="{{\'APPLICATION_CONSUMER_KEY\' | translate}}" class="form-control" data-ng-model="account.consumerKey" required/>\n								<span data-ng-show="forms.formSetting.consumerKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONSUMER KEY -->\n\n              <!-- START CONSUMER SECRET -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerSecret.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_CONSUMER_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="consumerSecret" placeholder="{{\'APPLICATION_CONSUMER_SECRET\' | translate}}" class="form-control" data-ng-model="account.consumerSecret" required/>\n								<span data-ng-show="forms.formSetting.consumerSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONSUMER SECRET -->\n\n              <!-- START TOKEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="token" placeholder="{{\'APPLICATION_TOKEN\' | translate}}" class="form-control" data-ng-model="account.token" required/>\n								<span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TOKEN -->\n\n              <!-- START TOKEN SECRET-->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.tokenSecret.$invalid}" ng-slide-down="account.authType == \'oauth\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_TOKEN_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="tokenSecret" placeholder="{{\'APPLICATION_TOKEN_SECRET\' | translate}}" class="form-control" data-ng-model="account.tokenSecret" required/>\n								<span data-ng-show="forms.formSetting.tokenSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TOKEN SECRET-->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/desk/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createConfiguration()">\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n							<form name="formsConfiguration.info" novalidate>\n								<!-- START NAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n									<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n									<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n									<span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END NAME -->\n								<!-- START DESCRIPTION -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n									<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n								</div>\n								<!-- END DESCRIPTION -->\n\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/desk/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n					</li>\n          <li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n					</li>\n          <li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- SUBJECT TAB -->\n					<div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n	            <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n	              <div class="col-md-3">\n	                <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n	                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n	                <div class="form-group">\n	                  <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n	                </div>\n	              </div>\n	              <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n	                <div class="form-group">\n	                  <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n					<div class="tab-pane ui-padding" id="tab_1_2">\n						<div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n							<div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n								<!-- <pre>\n									{{descriptionItem|json}}\n								</pre> -->\n	              <div class="col-md-2">\n	                <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n	                  <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n	                <div class="form-group">\n	                  <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n	                </div>\n	              </div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n									<input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n								</div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n									<ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n	                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n								</div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n									<input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n								</div>\n	              <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n	                <div class="form-group">\n	                  <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n					<div class="tab-pane ui-padding" id="tab_1_3">\n						<div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n	            <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n	              <div class="col-md-3">\n	                <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n	                  <ui-select-choices repeat="item.id as item in accountFields | filter: $select.search">\n	                    <div ng-bind-html="item.label | highlight: $select.search"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n	                <div class="form-group">\n										<ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n		                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected}}</ui-select-match>\n		                  <ui-select-choices repeat="item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n		                    <div ng-bind-html="item | highlight: $select.search"></div>\n		                  </ui-select-choices>\n		                </ui-select>\n	                </div>\n	              </div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n									<div class="form-group">\n										<ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n		                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n		                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n		                    <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n		                  </ui-select-choices>\n		                </ui-select>\n									</div>\n								</div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n	                <div class="form-group">\n										<input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n	                </div>\n	              </div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n	                <div class="form-group">\n										<ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END FIELDS TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/desk/view/view.configurations.html",'<div ui-view class="profile-content">\n	<div class="row" data-ng-init="getConfigurations()">\n		<div class="col-md-12">\n			<div class="portlet light">\n				<div class="portlet-title  tabbable-line">\n					<div class="caption caption-md">\n						<i class="icon-globe theme-font hide"></i>\n						<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n					</div>\n					<div class="actions">\n						<div class="btn-group">\n							<a class="btn green-jungle " href="/desk/view/{{account.id}}/configuration" data-toggle="dropdown">\n								<i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n							</a>\n						</div>\n					</div>\n				</div>\n				<div class="portlet-body">\n					<!-- START TABLE -->\n					<table class="table table-striped table-bordered table-hover">\n						  <thead>\n							  <tr>\n							    <th>{{\'APPLICATION_NAME\' | translate}}</th>\n									<th>{{\'APPLICATION_DESCRIPTION\' | translate}}</th>\n									<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n							  </tr>\n						  </thead>\n							<tbody>\n						    <tr data-ng-repeat="configuration in configurations">\n									<td>{{configuration.name}}</td>\n									<td>{{configuration.description}}</td>\n						      <td>\n										<a class="btn default btn-xs blue-stripe" data-ng-href="/desk/view/{{account.id}}/configurations/settings/{{configuration.id}}">\n											{{ \'APPLICATION_SETTINGS\' | translate}}\n						        </a>\n						        <a class="btn default btn-xs red-stripe" data-ng-click="deleteConfiguration(configuration.name,configuration.id)">\n											{{ \'APPLICATION_DELETE\' | translate }}\n						        </a>\n						      </td>\n						    </tr>\n								<tr data-ng-hide="configurations.length">\n									<td colspan="5" style="text-align:center;">\n										<i>No configuration available</i>\n									</td>\n								</tr>\n						  </tbody>\n					</table>\n					<!-- END TABLE -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/desk/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n          <i class="icon-handbag"></i>\n          <a href="/desk/list">{{ \'APPLICATION_DESK_COM\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{account.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img src="assets/images/media/desk.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{account.name}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{account.remoteUri}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.desk.view.account\')}">\n							<a ng-href="/desk/view/{{account.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.includes(\'main.desk.view.configurations\') || $state.is(\'main.desk.view.configuration\')}">\n							<a ng-href="/desk/view/{{account.id}}/configurations">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/desk/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-handbag"></i>\n						<a href="/desk/list">{{ \'APPLICATION_DESK_COM\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n						<form name="forms.formSetting" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.username" required ng-remote-validate="/api/desk/accounts/validate/username"/>\n								<span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formSetting.username.$touched || forms.formSetting.$submitted) && forms.formSetting.username.$error.ngRemoteValidate" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n				        </span>\n							</div>\n							<!-- END USERNAME -->\n\n\n              <!-- START REMOTE ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required ng-remote-validate="/api/desk/accounts/validate/remoteUri"/>\n								<span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formSetting.remoteUri.$touched || forms.formSetting.$submitted) && forms.formSetting.remoteUri.$error.ngRemoteValidate" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n				        </span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START AUTH TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n								<label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n								<ui-select data-ng-model="item.authType" name="authType" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="type in [\'basic\', \'oauth\'] | filter: $select.search">\n										<div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="item.authType == \'basic\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n								<span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n              <!-- START CONSUMER KEY -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerKey.$invalid}" ng-slide-down="item.authType == \'oauth\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_CONSUMER_KEY\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="consumerKey" placeholder="{{\'APPLICATION_CONSUMER_KEY\' | translate}}" class="form-control" data-ng-model="item.consumerKey" required/>\n								<span data-ng-show="forms.formSetting.consumerKey.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONSUMER KEY -->\n\n              <!-- START CONSUMER SECRET -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.consumerSecret.$invalid}" ng-slide-down="item.authType == \'oauth\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_CONSUMER_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="consumerSecret" placeholder="{{\'APPLICATION_CONSUMER_SECRET\' | translate}}" class="form-control" data-ng-model="item.consumerSecret" required/>\n								<span data-ng-show="forms.formSetting.consumerSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONSUMER SECRET -->\n\n              <!-- START TOKEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="item.authType == \'oauth\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="token" placeholder="{{\'APPLICATION_TOKEN\' | translate}}" class="form-control" data-ng-model="item.token" required/>\n								<span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TOKEN -->\n\n              <!-- START TOKEN SECRET-->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.tokenSecret.$invalid}" ng-slide-down="item.authType == \'oauth\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_TOKEN_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="tokenSecret" placeholder="{{\'APPLICATION_TOKEN_SECRET\' | translate}}" class="form-control" data-ng-model="item.tokenSecret" required/>\n								<span data-ng-show="forms.formSetting.tokenSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TOKEN SECRET-->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n\n				</wizard>\n\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/fax/account/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-paper-plane"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-notebook"></i>\n						<a href="/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="fax_accounts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/fax/accounts/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getFaxAccounts([\'name\', \'description\', \'phone\'])" csv-header="[\'Name\', \'Description\', \'Phone\']" field-separator=";" filename="fax_accounts.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedFaxAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.faxAccountsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="faxAccountByPage in faxAccountsByPage | filter: $select.search">\n													<div ng-bind-html="faxAccountByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(faxAccount, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="phone">{{ \'APPLICATION_PHONE\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="faxAccount in displayedFaxAccounts" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="fax_accounts.checked" checklist-value="faxAccount.id"></td>\n					      <td>{{faxAccount.name}}</td>\n								<td>{{faxAccount.description}}</td>\n								<td>{{faxAccount.phone}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/fax/accounts/view/{{faxAccount.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(faxAccount.name,faxAccount.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedFaxAccounts.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No fax account available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td></td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="phone" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_PHONE\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.faxAccountsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/account/view/view.applications.html",'<div class="row" data-ng-init="initApplication()">\n	<div class="col-md-12">\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(forms.info.$valid)">\n							<form name="forms.info" novalidate>\n								<!-- START APP -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid}">\n									<label class="control-label">{{\'APPLICATION_APPLICATION\' | translate}}</label>\n									<ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n				            <ui-select-match placeholder="{{\'APPLICATION_APPLICATION\' | translate}}">{{$select.selected | uppercase}}</ui-select-match>\n				            <ui-select-choices repeat="filter in [\'queue\', \'agent\'] | filter: $select.search">\n				              <div ng-bind-html="filter | uppercase | highlight: $select.search"></div>\n				            </ui-select-choices>\n				          </ui-select>\n									<span data-ng-show="(forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid && forms.info.app.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END APP -->\n\n								<!-- START APPADATA -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n									<label class="control-label">{{\'APPLICATION_ARGUMENTS\' | translate}}</label>\n									<ui-select data-ng-model="application.appdata" name="appdata" theme="bootstrap" required>\n				            <ui-select-match placeholder="{{\'APPLICATION_ARGUMENTS\' | translate}}">{{$select.selected.name}}</ui-select-match>\n				            <ui-select-choices repeat="item in items | filter: $select.search">\n				              <div data-ng-bind-html="item.name | highlight: $select.search"></div>\n				            </ui-select-choices>\n				          </ui-select>\n									<span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END APPADATA -->\n\n								<!-- START TIMEOUT -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid}">\n									<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}</label>\n									<input type="text" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" required>\n									<span data-ng-show="(forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid && forms.info.timeout.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END TIMEOUT -->\n\n								<!-- START INTERVAL -->\n								<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.info.interval.$touched || forms.info.$submitted) && forms.info.interval.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVAL\' | translate}}</label>\n									<input type="text" name="interval" placeholder="*|*|*|*" class="form-control" data-ng-model="application.interval">\n									<span data-ng-show="(forms.info.info.interval.$touched || forms.info.$submitted) && forms.info.interval.$invalid && forms.info.interval.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div> -->\n								<!-- END INTERVAL -->\n\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/account/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-paper-plane"></i>\n					<a href="/">{{ \'APPLICATION_FAX\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-notebook"></i>\n					<a href="/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="account"></i>\n				</li>\n				<li data-ng-show="account">\n					<a href="#">{{ account.name || account.description }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/account.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ account.name || account.description }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{ account.phone }}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.fax.accounts.view.settings\')}">\n							<a href="/fax/accounts/view/{{account.id}}/settings">\n							<i class="icon-settings"></i>\n							{{\'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.fax.accounts.view.routes\') || $state.is(\'main.fax.accounts.view.applications\')}">\n							<a href="/fax/accounts/view/{{account.id}}/routes">\n							<i class="icon-directions"></i>\n							{{\'APPLICATION_ROUTES\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/account/view/view.routes.html",'<div class="row" data-ng-init="getFaxApplications()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ROUTES\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/fax/accounts/view/{{account.id}}/applications" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_APPLICATION\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n								<!-- <th width="5%">{{ \'APPLICATION_ID\' | translate }}</th> -->\n						    <th>{{\'APPLICATION_APPLICATION\' | translate}}</th>\n						    <th>{{\'APPLICATION_ARGUMENTS\' | translate}}</th>\n								<th>{{\'APPLICATION_TIMEOUT\' | translate}}</th>\n						    <!-- <th>{{\'APPLICATION_INTERVAL\' | translate}}</th> -->\n								<th width="5%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n						<tbody ui-sortable="sortableOptions" data-ng-model="faxApplications">\n					    <tr data-ng-repeat="application in faxApplications | orderBy:\'priority\'">\n								<td><span data-ng-class="{\'label-info\': application.app == \'agent\', \'label-success\': application.app == \'queue\'}" class="label label-sm"> {{application.app}} </span></td>\n								<td>{{getAppdata(application.app, application.appdata)}}</td>\n								<td>{{application.timeout}}</td>\n								<!-- <td>{{application.interval}}</td> -->\n					      <td>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app,application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="faxApplications.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No applications available</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/fax/account/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItemFaxAccount()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<!-- START TRUNKS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.trunk.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="account.TrunkId" name="trunk" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_TRUNK\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="trunk.id as trunk in trunks | filter: $select.search">\n										<div data-ng-bind="trunk.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.trunk.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START TRUNKS -->\n\n							<!-- START PHONE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.phone.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PHONE\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="phone" placeholder="{{\'APPLICATION_PHONE\' | translate}}" class="form-control" data-ng-model="account.phone" required/>\n								<span data-ng-show="forms.formSetting.phone.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PHONE -->\n\n							<!-- START ECM -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_ECM\' | translate}}<span class="required" aria-required="true">*</span></label><br>\n								<!-- <button type="button" name="ecm" class="btn btn-default form-control" data-ng-model="account.ecm" bs-checkbox>{{account.ecm ? \'ENABLED\' : \'DISABLED\'}}</button> -->\n								<input\n									bs-switch\n									ng-model="account.ecm"\n									type="checkbox"\n									switch-active="{{ isActive }}"\n									switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n									switch-on-color="{{ onColor }}"\n									switch-off-color="{{ offColor }}"\n									switch-animate="{{ animate }}"\n									switch-size="{{ size }}"\n									switch-label="{{ label }}"\n									switch-icon="{{ icon }}"\n									switch-radio-off="{{ radioOff }}"\n									switch-label-width="{{ labelWidth }}"\n									switch-handle-width="{{ handleWidth }}">\n							</div>\n							<!-- END ECM -->\n\n							<!-- START FAXHEADER -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.faxheader.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FAXHEADER\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="faxheader" placeholder="{{\'APPLICATION_FAXHEADER\' | translate}}" class="form-control" data-ng-model="account.faxheader" required/>\n								<span data-ng-show="forms.formSetting.faxheader.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FAXHEADER -->\n\n							<!-- START LOCALID -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.localid.$invalid}">\n								<label class="control-label">{{\'APPLICATION_LOCALID\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="localid" placeholder="{{\'APPLICATION_LOCALID\' | translate}}" class="form-control" data-ng-model="account.localid" required/>\n								<span data-ng-show="forms.formSetting.localid.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END LOCALID -->\n\n							<!-- START MAXRATE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.maxrate.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MAXRATE\' | translate}}</label>\n								<ui-select data-ng-model="account.maxrate" name="maxrate" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="maxrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n										<div data-ng-bind="maxrate | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.maxrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START MAXRATE -->\n\n							<!-- START MINRATE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.minrate.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MINRATE\' | translate}}</label>\n								<ui-select data-ng-model="account.minrate" name="minrate" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="minrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n										<div data-ng-bind="minrate | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.minrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START MINRATE -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/fax/account/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-paper-plane"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-notebook"></i>\n						<a href="/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n						<form name="forms.formSetting" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<!-- START TRUNKS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.trunk.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="item.TrunkId" name="trunk" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_TRUNK\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="trunk.id as trunk in trunks | filter: $select.search">\n										<div data-ng-bind="trunk.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.trunk.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START TRUNKS -->\n\n							<!-- START PHONE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.phone.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PHONE\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="phone" placeholder="{{\'APPLICATION_PHONE\' | translate}}" class="form-control" data-ng-model="item.phone" required/>\n								<span data-ng-show="forms.formSetting.phone.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PHONE -->\n\n							<!-- START ECM -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_ECM\' | translate}}<span class="required" aria-required="true">*</span></label><br>\n								<!-- <button type="button" name="ecm" class="btn btn-default form-control" data-ng-model="item.ecm" bs-checkbox>{{item.ecm ? \'ENABLED\' : \'DISABLED\'}}</button> -->\n								<input\n									bs-switch\n									ng-model="item.ecm"\n									type="checkbox"\n									switch-active="{{ isActive }}"\n									switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n									switch-on-color="{{ onColor }}"\n									switch-off-color="{{ offColor }}"\n									switch-animate="{{ animate }}"\n									switch-size="{{ size }}"\n									switch-label="{{ label }}"\n									switch-icon="{{ icon }}"\n									switch-radio-off="{{ radioOff }}"\n									switch-label-width="{{ labelWidth }}"\n									switch-handle-width="{{ handleWidth }}">\n							</div>\n							<!-- END ECM -->\n\n							<!-- START FAXHEADER -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.faxheader.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FAXHEADER\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="faxheader" placeholder="{{\'APPLICATION_FAXHEADER\' | translate}}" class="form-control" data-ng-model="item.faxheader" required/>\n								<span data-ng-show="forms.formSetting.faxheader.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FAXHEADER -->\n\n							<!-- START LOCALID -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.localid.$invalid}">\n								<label class="control-label">{{\'APPLICATION_LOCALID\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="localid" placeholder="{{\'APPLICATION_LOCALID\' | translate}}" class="form-control" data-ng-model="item.localid" required/>\n								<span data-ng-show="forms.formSetting.localid.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END LOCALID -->\n\n							<!-- START MAXRATE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.maxrate.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MAXRATE\' | translate}}</label>\n								<ui-select data-ng-model="item.maxrate" name="maxrate" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="maxrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n										<div data-ng-bind="maxrate | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.maxrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START MAXRATE -->\n\n							<!-- START MINRATE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.minrate.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MINRATE\' | translate}}</label>\n								<ui-select data-ng-model="item.minrate" name="minrate" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="minrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n										<div data-ng-bind="minrate | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.minrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START MINRATE -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n\n				</wizard>\n\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/fax/automation/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-settings"></i>\n						<a href="#">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-settings font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="faxAutomations.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_AUTOMATION\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/fax/automations/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getFaxAutomations([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="fax_automations.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedFaxAutomations" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.faxAutomationsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="faxAutomationByPage in faxAutomationsByPage | filter: $select.search">\n													<div ng-bind-html="faxAutomationByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(faxAutomation, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="faxAutomation in displayedFaxAutomations">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="faxAutomations.checked" checklist-value="faxAutomation.id"></td>\n					      <td>{{faxAutomation.name}}</td>\n								<td>{{faxAutomation.description}}</td>\n								<td>\n									<input\n										data-ng-change="updateItem(faxAutomation.id, faxAutomation.status)",\n								    bs-switch\n								    ng-model="faxAutomation.status"\n								    type="checkbox"\n								    switch-active="{{ isActive }}"\n								    switch-on-text="{{ onText }}"\n								    switch-off-text="{{ offText }}"\n								    switch-on-color="{{ onColor }}"\n								    switch-off-color="{{ offColor }}"\n								    switch-animate="{{ animate }}"\n								    switch-size="{{ size }}"\n								    switch-label="{{ label }}"\n								    switch-icon="{{ icon }}"\n								    switch-radio-off="{{ radioOff }}"\n								    switch-label-width="{{ labelWidth }}"\n								    switch-handle-width="{{ handleWidth }}">\n								</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/fax/automations/view/{{faxAutomation.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(faxAutomation.name, faxAutomation.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedFaxAutomations.length">\n								<td colspan="6" class="text-center">\n									<i>{{\'MESSAGE_NO_AVAILABLE_AUTOMATIONS\' | translate}}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.faxAutomationsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/automation/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="/">{{ \'APPLICATION_FAX\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/fax/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="automation"></i>\n				</li>\n				<li data-ng-show="automation">\n					<a href="#">{{ automation.description || automation.name }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/automation.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ automation.name }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{automation.description}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.fax.automations.view.settings\')}">\n							<a href="/fax/automations/view/{{automation.id}}/settings">\n							<i class="icon-settings"></i>\n							{{\'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/automation/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">OR {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">AND {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_4" data-toggle="tab">{{\'APPLICATION_ACTIONS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.info" data-ng-submit="forms.info.$valid && updateAutomation()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="automation.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="automation.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n					<!-- IMAP TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewCondition(\'or\')">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'or\'}">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.condition" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n													<div data-ng-bind="condition.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.operator" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="operator.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-4" data-ng-switch="condition.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="condition.attribute" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n										</div>\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeCondition(condition.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessConditions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n					</div>\n					<!-- END IMAP TAB -->\n\n					<div class="tab-pane" id="tab_1_3">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewCondition(\'and\')">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'and\'}">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.condition" name="conditionAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n													<div data-ng-bind="condition.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.operator" name="operatorAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="operator.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-4" data-ng-switch="condition.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="condition.attribute" name="attributeAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" data-ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n											<span data-ng-show="forms.and.attributeAnd{{$index}}.$invalid && forms.and.attributeAnd{{$index}}.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeCondition(condition.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessConditions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n					</div>\n\n					<!-- SMTP TAB -->\n					<div class="tab-pane" id="tab_1_4">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewAction()">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="action in automation.BusinessActions">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="action.condition" theme="bootstrap" on-select="updateAction(action.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="action.key as action in automations.actions | filter: $select.search">\n													<div data-ng-bind="action.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3" data-ng-switch="action.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="action.attribute" theme="bootstrap" on-select="updateAction(action.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(action.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" data-ng-model="action.attribute" data-ng-blur="updateAction(action.id, \'attribute\', action.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n										</div>\n									</div>\n									<div class="col-md-4">\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeAction(action.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessActions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n\n					</div>\n					<!-- END SMTP TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/fax/automation/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN PAGE HEADER-->\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/fax/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n		<!-- END PAGE HEADER-->\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-settings font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n	        <wz-step title="{{\'APPLICATION_NEW_AUTOMATION\' | translate}}" canexit="formValidation(forms.automation.$valid && forms.automation.$valid)">\n						<form name="forms.automation" novalidate>\n							<div class="row">\n								<div class="col-md-12">\n									<div class="form-group" data-ng-class="{\'has-error\': forms.automation.name.$invalid && forms.automation.$submitted}">\n										<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<input class="form-control" type="text" name="name" value="" data-ng-model="automations.name" required>\n										<span data-ng-show="forms.automation.name.$invalid && forms.automation.name.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n\n									<div class="form-group" data-ng-class="{\'has-error\': forms.automation.description.$invalid && forms.automation.$submitted}">\n										<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n										<input class="form-control" type="text" name="description" value="" data-ng-model="automations.description">\n										<span data-ng-show="forms.automation.description.$invalid && forms.automation.description.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<hr>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'or\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-user"></i>\n									<span class="caption-subject">Meet <strong>any</strong> of the following conditions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.or">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionOr{{$index}}.$invalid && forms.automation.$submitted && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].condition" name="conditionOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="condition in automations.or[$index].conditions | filter: $select.search">\n														<div data-ng-bind="condition.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.conditionOr{{$index}}.$invalid && forms.automation.conditionOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorOr{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].operator" name="operatorOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="operator.key as operator in automations.or[$index].condition.operators | filter: $select.search">\n														<div data-ng-bind="operator.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.operatorOr{{$index}}.$invalid && forms.automation.operatorOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4" data-ng-switch="automations.or[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].attribute" name="attributeOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.or[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number">\n												<input class="form-control" type="text" min="0" name="attributeOr{{$index}}" value="" data-ng-model="automations.or[$index].attribute" required>\n												<span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'or\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.or.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add condition</i>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'and\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-people"></i>\n									<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.and">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].condition" name="conditionAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="condition in automations.and[$index].conditions | filter: $select.search">\n														<div data-ng-bind="condition.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.conditionAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].operator" name="operatorAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="operator.key as operator in automations.and[$index].condition.operators | filter: $select.search">\n														<div data-ng-bind="operator.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.operatorAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4" data-ng-switch="automations.and[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].attribute" name="attributeAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.and[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number">\n												<input class="form-control" type="text" min="0" name="attributeAnd{{$index}}" value="" data-ng-model="automations.and[$index].attribute" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid}" required>\n												<span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'and\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.and.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add condition</i>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'actions\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-magic-wand"></i>\n									<span class="caption-subject">Perform these actions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.actions">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.actions.conditionAction{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.actions[$index].condition" name="conditionAction{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="action in automations.actions[$index].actions | filter: $select.search">\n														<div data-ng-bind="action.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.actions.conditionAction{{$index}}.$invalid && forms.actions.conditionAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3" data-ng-switch="automations.actions[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.actions[$index].attribute" name="attributeAction{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.actions[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid}">\n												<input class="form-control" type="text" min="0" name="attributeAction{{$index}}" value="" data-ng-model="automations.actions[$index].attribute" required>\n												<span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4">\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'actions\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.actions.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add action</i>\n								</div>\n							</div>\n							<div class="row">\n								<div class="col-md-12">\n									<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n								</div>\n							</div>\n						</form>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/fax/inbox/inbox.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-paper-plane"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-note"></i>\n						<a href="/fax/inbox/incoming">{{ \'APPLICATION_INBOX\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE CONTENT-->\n<div class="row inbox">\n	<div class="col-md-12" ui-view>\n	</div>\n</div>\n'),a.put("app/fax/inbox/incoming/incoming.html",'<!-- END PAGE HEADER-->\n<div data-ng-init="getRooms()">\n	<!-- <pre>\n		{{faxRooms | json}}\n	</pre> -->\n	<div class="inbox-header">\n		<h1 class="pull-left">Inbox</h1>\n	</div>\n	<div class="inbox-content">\n		<table class="table table-advance" st-table="displayedFaxRooms" st-safe-src="faxRooms">\n			<thead>\n				<tr>\n					<th colspan="8" style="background: #eef4f7; border: none; border-bottom: solid 5px #fff;">\n						<div class="row">\n							<div class="col-md-6">\n								<input type="checkbox" class="mail-checkbox mail-group-checkbox checker" data-ng-model="checked" data-ng-change="switchCheckbox(displayedFaxRooms, checked)">\n								<div class="btn-group">\n									<a data-ng-href="/fax/inbox/compose" class="btn btn-sm blue">{{\'APPLICATION_NEW_MESSAGE\' | translate}} <i class="fa fa-plus"></i></a>\n									<!-- <a class="btn btn-sm blue dropdown-toggle" href="#" data-toggle="dropdown">\n										{{\'APPLICATION_MORE\' | translate}} <i class="fa fa-angle-down"></i>\n									</a> -->\n									<ul class="dropdown-menu">\n										<li>\n											<a href="#" data-ng-click="markAsRead(true)">\n											<i class="icon-paper-plane-open"></i> {{\'APPLICATION_MARK_AS_READ\' | translate}} </a>\n										</li>\n										<li>\n											<a href="#" data-ng-click="markAsRead(false)">\n											<i class="icon-paper-plane"></i> {{\'APPLICATION_MARK_AS_UNREAD\' | translate}} </a>\n										</li>\n										<li class="divider">\n										</li>\n										<li>\n											<a href="#" data-ng-click="deleteMessage()">\n											<i class="icon-trash"></i> {{\'APPLICATION_DELETE\' | translate}} </a>\n										</li>\n									</ul>\n								</div>\n							</div>\n							<div class="col-md-6">\n								<div class="input-group input-medium pull-right">\n									<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n									<span class="input-group-addon btn green" style="cursor: default;">\n										<i class="icon-magnifier" style="color: white;"></i>\n									</span>\n								</div>\n								<ui-select data-ng-model="conf.faxRoomsByPage" theme="bootstrap" style="width: 100px;" class="pull-right margin-right-10">\n									<ui-select-match placeholder="{{ \'APPLICATION_SEARCH\' | translate }}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="p in [10, 20, 35, 50] | filter: $select.search">\n										<span ng-bind-html="p | highlight: $select.search"></span>\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n					</th>\n				</tr>\n			</thead>\n			<tbody>\n				<tr data-ng-repeat="faxRoom in displayedFaxRooms | orderBy:\'-updatedAt\'" data-ng-class="{unread: !faxRoom.read}" data-ng-click="go(\'/fax/inbox/room/\' + faxRoom.id, faxRoom.id, \'OPEN\')" class="animate-repeat">\n					<td class="inbox-small-cells" style="border: none;">\n						<input type="checkbox" class="checker" checklist-model="checkedMailMessages.id" checklist-value="faxRoom.id">\n					</td>\n					<!-- <td class="inbox-small-cells" style="border: none;">\n						<i class="fa fa-star" data-ng-class="{\'inbox-started\': faxRoom.favorite}" data-ng-click="markAsFavorite(faxRoom.id, faxRoom.favorite)"></i>\n					</td> -->\n					<td class="view-message hidden-xs" style="cursor:pointer; border:none;">\n						#{{faxRoom.id}}\n					</td>\n					<!-- <td class="inbox-small-cells" style="border: none;">\n						<i class="fa fa-star" data-ng-class="{\'inbox-started\': faxRoom.favorite}" data-ng-click="markAsFavorite(faxRoom.id, faxRoom.favorite)"></i>\n					</td> -->\n					<!-- <td class="view-message hidden-xs" style="cursor:pointer; border:none;">\n						{{faxRoom.subject}}\n					</td> -->\n					<td class="view-message" style="cursor:pointer; border:none;">\n					 	{{faxRoom.from}}\n					</td>\n					<td class="view-message" style="cursor:pointer; border:none;">\n					 	{{faxRoom.MailAccount.description ? faxRoom.MailAccount.description : faxRoom.MailAccount.name}}\n					</td>\n					<td class="view-message" style="cursor:pointer; border:none;" data-ng-switch="faxRoom.status">\n						<span class="badge badge-default" data-ng-class="{\n						\'badge-danger\': faxRoom.status == \'NEW\',\n						\'badge-warning\': faxRoom.status == \'OPEN\',\n						\'badge-info\': faxRoom.status == \'PENDING\',\n						\'badge-success\': faxRoom.status == \'CLOSED\'}"> {{faxRoom.status | uppercase}} </span>\n					</td>\n					<td class="view-message" style="cursor:pointer; border:none;">\n						<span class="badge badge-success badge-roundless" data-ng-show="faxRoom.User.fullname"> {{faxRoom.User.fullname}} </span>\n						<span class="badge badge-default badge-roundless" data-ng-hide="faxRoom.User.fullname"> {{\'APPLICATION_UNASSIGNED\' | translate}} </span>\n					</td>\n					<td class="view-message text-right" context-menu="menuOptions" style="border: none;">\n						<time is="relative-time" datetime="{{faxRoom.updatedAt}}">\n							April 1, 2014\n						</time>\n					</td>\n				</tr>\n				<tr data-ng-hide="faxRooms.length">\n					<td colspan="6" class="text-center">\n						<i>{{\'MESSAGE_NO_AVAILABLE_MESSAGES\' | translate}}</i>\n					</td>\n				</tr>\n				<tr>\n					<td colspan="8" class="text-center" style="border: none;">\n						<div st-pagination class="pagination" st-items-by-page="conf.faxRoomsByPage" st-displayed-pages="7"></div>\n					</td>\n				</tr>\n			</tbody>\n		</table>\n	</div>\n</div>\n'),a.put("app/fax/inbox/room/room.html",'<!-- BEGIN TODO CONTENT -->\n<div class="todo-content" data-ng-init="initRoomView()">\n	<div class="portlet light">\n		<!-- PROJECT HEAD -->\n		<div class="portlet-title">\n			<div class="caption" data-ng-show="faxRoom">\n				<i class="icon-bar-chart font-green-sharp hide"></i>\n				<span class="badge badge-default" data-ng-class="{\'badge-error\': faxRoom.status == \'NEW\',\n				\'badge-warning\': faxRoom.status == \'OPEN\',\n				\'badge-info\': faxRoom.status == \'PENDING\',\n				\'badge-success\': faxRoom.status == \'CLOSED\'}"> {{faxRoom.status | uppercase}} </span>\n			</div>\n			<div class="actions" data-ng-show="faxRoom">\n				<div class="btn-group" data-ng-show="Auth.isAdmin()">\n					<a class="btn grey-salsa btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n					{{ \'APPLICATION_ASSIGN\' | translate }} <i class="fa fa-angle-down"></i>\n					</a>\n					<ul class="dropdown-menu pull-right">\n						<li data-ng-repeat="agent in agents">\n							<a href="#" data-ng-click="assignAgent(agent.id)">\n							{{agent.fullname}} <span class="badge badge-default"> {{agent.fullname | uppercase | limitTo : 1}} </span>\n							</a>\n						</li>\n					</ul>\n				</div>\n				<div class="btn-group">\n					<a class="btn green-haze btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n					{{ \'APPLICATION_STATUS\' | translate }} <i class="fa fa-angle-down"></i>\n					</a>\n					<ul class="dropdown-menu pull-right">\n						<li>\n							<a href="#" data-ng-click="updateStatus(\'PENDING\')">\n							{{\'STATUS_PENING\' | translate}} <span class="badge badge-danger">\n							P </span>\n							</a>\n						</li>\n						<li>\n							<a href="#" data-ng-click="updateStatus(\'CLOSED\')">\n							{{\'STATUS_CLOSED\' | translate}} <span class="badge badge-success">\n							C </span>\n							</a>\n						</li>\n					</ul>\n				</div>\n			</div>\n		</div>\n		<!-- end PROJECT HEAD -->\n		<div class="portlet-body">\n			<div class="row">\n				<div data-ng-show="faxRoom" data-ng-class="{\'col-md-7 col-sm-7\': faxRoom}">\n					<div class="scroller" id="faxMessages" style="height: 500px; overflow-y: scroll; width: auto;" data-always-visible="1" data-rail-visible1="1" data-initialized="1">\n						<ul class="chats">\n							<li data-ng-class="{\'in\': faxMessage.status == \'RECEIVED\', \'out\': (faxMessage.status == \'SENT\' || faxMessage.status == \'SENDING\' || faxMessage.status == \'FAILED\' || faxMessage.status == \'NOT SENT\')}" data-ng-repeat="faxMessage in faxRoom.FaxMessages | orderBy:\'createdAt\'">\n							<img class="avatar" alt="" data-ng-src="api/users/avatar/{{getCurrentUser().userpic && faxMessage.status === \'SENT\' ? getCurrentUser().userpic : \'unknown_avatar\'}}">\n							<div class="message">\n								<span class="arrow">\n								</span>\n								<span class="bold">{{\'APPLICATION_FROM\' | translate}}: </span>\n								<span>{{faxMessage.From.fullname}} </span>\n								<span> &#60;{{faxMessage.From.phone}}&#62; </span>\n								<br>\n								<span class="bold">{{\'APPLICATION_TO\' | translate}}: </span>\n								<span>{{faxMessage.To.fullname}} </span>\n								<span> &#60;{{faxMessage.To.phone}}&#62; </span>\n								<br>\n								<span class="todo-tasklist-date">\n									<i class="fa fa-calendar"></i>\n									<time is="relative-time" datetime="{{faxMessage.createdAt}}">\n										April 1, 2014\n									</time>\n								</span>\n								<span data-ng-show="faxMessage.status == \'FAILED\' || faxMessage.status == \'SENDING\'" class="badge badge-default" data-ng-class="{\'badge-error\': faxMessage.status == \'FAILED\', \'badge-warning\': faxMessage.status == \'SENDING\'}"> {{faxMessage.status | uppercase}} </span>\n								<br>\n								<br>\n								<span class="body">\n									<div class="wrapper" ng-controller="FaxInboxRoomCtrl" style="max-height:600px; overflow:auto;">\n					          <ng-pdf pdf-url="/api/fax/messages/{{faxMessage.id}}/content" template-url="/assets/plugins/angular-pdf/example/partials/viewer.html" scale="0.5" page=1></ng-pdf>\n					        </div>\n								</span>\n								<br>\n							</div>\n						</li>\n						</ul>\n					</div>\n				</div>\n				<div data-ng-class="{\'col-md-5 col-sm-5\': faxRoom, \'col-md-12 col-sm-12\': !faxRoom}">\n					<form name="forms.compose" data-ng-submit="forms.compose.$valid && sendFax()" class="form-horizontal" novalidate>\n						<!-- TASK HEAD -->\n						<div class="form">\n							<div class="form-group">\n								<div class="col-md-12 col-sm-12">\n									<div class="todo-taskbody-user">\n										<img class="todo-userpic pull-left" data-ng-src="api/users/avatar/{{getCurrentUser().userpic ? getCurrentUser().userpic : \'unknown_avatar\'}}" width="50px" height="50px">\n										<span class="todo-username pull-left">{{ getCurrentUser().fullname }}</span>\n									</div>\n								</div>\n							</div>\n							<!-- END TASK HEAD -->\n\n							<!-- FAX FROM -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.compose.from.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">{{\'APPLICATION_FROM\' | translate}}:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select data-ng-model="form.from" theme="bootstrap" name="from" required ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_FROM\' | translate}}...">{{$select.selected.name}} - {{$select.selected.phone}}</ui-select-match>\n												<ui-select-choices repeat="faxAccount in faxAccounts | filter: $select.search">\n													<div ng-bind-html="faxAccount.name | highlight: $select.search"></div>\n													<small ng-bind-html="faxAccount.phone | highlight: $select.search"></small>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.compose.from.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n\n							<!-- FAX TO -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.compose.to.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">{{\'APPLICATION_TO\' | translate}}:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select tagging tagging-label="" multiple required data-ng-model="form.sto" theme="bootstrap" name="to" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_TO\' | translate}}...">{{$item}}</ui-select-match>\n												<ui-select-choices repeat="to in form.to | filter:$select.search">\n													{{to}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.compose.to.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n\n							<!-- TASK DESC -->\n							<div class="form-group">\n								<div class="col-md-12">\n									<!-- <textarea class="form-control todo-taskbody-taskdesc" rows="8" data-ng-model="form.text" name="text" style="resize: none;"></textarea> -->\n									<div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html" name="html"></div>\n								</div>\n							</div>\n							<!-- END TASK DESC -->\n\n							<!-- START ATTACH -->\n							<div class="form-group">\n								<div class="col-md-6">\n									<input type="file" nv-file-select uploader="uploader" name="file">\n									<table class="table" border="0">\n										<tbody>\n										<tr data-ng-repeat="item in uploader.queue">\n												<td style="border-top-style:none">\n													<strong>\n														{{ item.file.name }}\n													</strong>\n												</td>\n												<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n													{{ item.file.size/1024/1024|number:2 }} MB\n												</td>\n												<td nowrap style="border-top-style:none">\n													<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n															<span class="glyphicon glyphicon-trash"></span> Remove\n													</button>\n												</td>\n											</tr>\n										</tbody>\n									</table>\n								</div>\n								<div class="col-md-6">\n									<div class="form-actions right todo-form-actions">\n										<button class="btn btn-circle btn-sm green-haze">{{ \'APPLICATION_SEND\' | translate }}</button>\n										<input type="button" name="cancel" value="{{ \'APPLICATION_CANCEL\' | translate }}" class="btn btn-circle btn-sm btn-default" data-ng-click="cancel()">\n									</div>\n								</div>\n							</div>\n							<!-- END ATTACH -->\n\n						</div>\n					</form>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n<!-- END TODO CONTENT -->\n'),a.put("app/fax/queue/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-paper-plane"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-layers"></i>\n						<a href="/fax/queues/lis">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-layers font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="faxQueues.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/fax/queues/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getFaxQueues([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Name\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="fax_queues.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedFaxQueues" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.queuesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="queueByPage in queuesByPage | filter: $select.search">\n													<div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(queue, checked)" checklist-model checklist-value="id"></th>\n								<th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate}}</th>\n								<th st-sort="timeout">{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}</th>\n						    <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="queue in displayedFaxQueues" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="faxQueues.checked" checklist-value="queue.id"></td>\n					      <td>{{queue.name}}</td>\n								<td>{{queue.description}}</td>\n								<td>{{queue.strategy | uppercase}}</td>\n								<td>{{queue.timeout}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/fax/queues/view/{{queue.id}}/settings">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(queue.name, queue.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedFaxQueues.length">\n								<td colspan="6" class="text-center">\n									<i>No available queues</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="67" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.queuesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body" style="width: 50%; margin: 0 auto;">\n				<!-- BEGIN FORM-->\n				<form action="index.html" class="form-horizontal form-row-seperated">\n					<div class="form-body text-center">\n						<div class="form-group last">\n							<div class="col-md-9" id="multi-select-team">\n							</div>\n						</div>\n					</div>\n				</form>\n				<!-- END FORM-->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/fax/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-paper-plane"></i>\n					<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-layers"></i>\n					<a href="/fax/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					<i data-ng-show="queue" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="queue">\n					<a href="#">{{queue.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{queue.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.fax.queues.view.settings\')}">\n							<a data-ng-href="/fax/queues/view/{{queue.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.fax.queues.view.agents\')}">\n							<a data-ng-href="/fax/queues/view/{{queue.id}}/agents">\n							<i class="icon-people"></i>\n							{{ \'APPLICATION_AGENTS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/queue/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.general" data-ng-submit="forms.general.$valid && updateFaxQueue()" novalidate>\n					<!-- START NAME -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n						<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n						<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n						<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END NAME -->\n\n					<!-- START DESCRIPTION -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n						<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n					</div>\n					<!-- END DESCRIPTION -->\n\n					<!-- START TIMEOUT -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}</label>\n						<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" min="1" data-ng-model="queue.timeout"/>\n					</div>\n					<!-- END TIMEOUT -->\n\n					<!-- START HEADER SHAPE -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n						<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n						<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n						<ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n							<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n							<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n								<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n					</div>\n					<!-- END HEADER SHAPE -->\n					<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n				</form>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/fax/queue/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-paper-plane"></i>\n				<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n        <i class="fa fa-angle-right"></i>\n			</li>\n      <li>\n				<i class="icon-layers"></i>\n				<a href="/fax/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-layers font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n					<form name="forms.general" data-ng-submit="forms.general.$valid && createItem()" novalidate>\n						<!-- START NAME -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n							<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n						</div>\n						<!-- END DESCRIPTION -->\n\n						<!-- START TIMEOUT -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n							<label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="number" min="0" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n							<span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid && forms.general.timeout.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END TIMEOUT -->\n\n						<!-- START STRATEGY -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n							<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n								<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n									<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid && forms.general.strategy.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END STRATEGY -->\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n					</form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),
-a.put("app/fax/timeline/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-paper-plane"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-list"></i>\n						<a href="/fax/timeline/list"> {{\'APPLICATION_TIMELINE\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n	<div class="col-md-12">\n    <h3 class="page-title">\n				{{\'APPLICATION_TIMELINE\' | translate}}\n			</h3>\n			<!-- END PAGE HEADER-->\n			<!-- BEGIN PAGE CONTENT-->\n			<div class="timeline">\n				<!-- TIMELINE ITEM -->\n				<div class="timeline-item" data-ng-repeat="event in events | orderBy:\'-id\'">\n					<div class="timeline-badge">\n						<div class="timeline-icon">\n							<i class="icon-paper-plane font-green-haze"></i>\n						</div>\n					</div>\n					<div class="timeline-body">\n						<div class="timeline-body-arrow"></div>\n						<div class="timeline-body-head">\n							<div class="timeline-body-head-caption">\n								<span class="timeline-body-alerttitle" data-ng-class="{\'font-red\': event.name == \'INCOMING\', \'font-blue\': event.name == \'ATTEMPT\', \'font-green\': event.name == \'TAKEN\'}">{{event.name | uppercase}}</span>\n								<span class="timeline-body-time font-grey-cascade">{{\'APPLICATION_AT\' | translate}} {{event.createdAt | date:\'yyyy-MM-dd HH:mm:ss\'}}</span>\n							</div>\n							<div class="timeline-body-head-actions">\n								<div class="btn-group">\n									<a class="btn btn-circle btn-sm dropdown-toggle btn-success" href="/fax/inbox/room/{{event.FaxRoomId}}">{{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_FAX\' | translate}}</a>\n								</div>\n							</div>\n						</div>\n						<div class="timeline-body-content">\n							<span class="font-grey-cascade" data-ng-show="event.User">\n							{{event.FaxRoom.subject ? event.FaxRoom.subject + \' - \' : \'\'}}<a href="/agents/view/{{event.UserId}}/account">{{event.User.fullname}}</a>\n							</span>\n						</div>\n					</div>\n				</div>\n				<!-- END TIMELINE ITEM -->\n			</div>\n			<!-- END PAGE CONTENT-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/integration/list/list.html",'\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-game-controller"></i>\n					<a href="/integrations/list">{{ \'APPLICATION_INTEGRATIONS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered" data-ng-init="initList()">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-eye font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_INTEGRATIONS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n				  <span class="btn green-jungle btn-file">\n            <span> <i class="icon-plus"></i> New App </span>\n            <input type="file" accept=".zip" nv-file-select="" uploader="uploader"/>\n          </span>\n          <a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedIntegrations" filename="integrations.csv">\n					<i class="icon-cloud-download"></i></a>\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedIntegrations" st-safe-src="integrations" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<select class="form-control input-small select2me" data-ng-model="integrationsByPage">\n												<option value="10">10</option>\n												<option value="25">25</option>\n												<option value="50">50</option>\n												<option value="{{integrations.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n											</select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th>\n						    <th st-sort="fullname">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="name">{{ \'APPLICATION_FILENAME\' | translate }}</th>\n								<th st-sort="name">{{ \'APPLICATION_VERSION\' | translate }}</th>\n						    <th st-sort="name">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n						    <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="integration in displayedIntegrations">\n								<td>{{integration.id}}</td>\n								<td>{{integration.name}}</td>\n								<td>{{integration.filename}}</td>\n								<td>{{integration.version}}</td>\n					      <td>{{integration.description}}</td>\n								<td>\n									<span class="btn default btn-xs blue-stripe btn-file">\n				            <span> {{ \'APPLICATION_UPDATE\' | translate }} </span>\n				            <input type="file" accept=".zip" nv-file-select="" uploader="uploader"/>\n				          </span>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(integration.name, integration.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="integrations.length">\n								<td colspan="6" style="text-align:center;">\n									<i>No integrations available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="id" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="filename" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FILENAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n						    </td>\n								<td>\n						    </td>\n								<td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="integrationsByPage" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-clock"></i>\n					<a href="/intervals/list">{{ \'APPLICATION_INTERVALS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-clock font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_INTERVALS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="intervals.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_INTERVAL\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/intervals/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getIntervals([\'name\'])" csv-header="[\'Name\']" field-separator=";" filename="intervals.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedIntervals" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="3">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.intervalsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="intervalByPage in intervalsByPage | filter: $select.search">\n													<div ng-bind-html="intervalByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(interval, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="interval in displayedIntervals">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="intervals.checked" checklist-value="interval.id"></td>\n								<td>{{interval.name}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/intervals/view/{{interval.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(interval.name,interval.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedIntervals.length">\n								<td colspan="3" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_INTERVALS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="3" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.intervalsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getInterval()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-clock"></i>\n					<a href="/intervals/list">{{ \'APPLICATION_INTERVALS\' | translate }}</a>\n					<i data-ng-show="interval" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="interval">\n					<a href="#">{{interval.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/interval.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{interval.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.intervals.view.settings\')}">\n							<a data-ng-href="/intervals/view/{{interval.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.intervals.view.subintervals\') || $state.is(\'main.intervals.view.subinterval\') || $state.is(\'main.intervals.view.subintervals.settings\')}">\n							<a data-ng-href="/intervals/view/{{interval.id}}/subintervals">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_SUBINTERVALS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_INTERVAL\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateInterval()" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="interval.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/interval/view/view.subinterval.html",'\n<div class="row" data-ng-init="initSubInterval()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_NEW_SUBINTERVAL\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.subinterval.name.$valid)">\n            <form name="forms.subinterval" novalidate>\n\n              <!-- START NAME -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.subinterval.name.$touched || forms.subinterval.$submitted) && forms.subinterval.name.$invalid}">\n                <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="subinterval.name" required/>\n                <span data-ng-show="(forms.subinterval.name.$touched || forms.subinterval.$submitted) && forms.subinterval.name.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END NAME -->\n\n							<!-- START TIME -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                <div class="input-group input-large">\n									<fieldset class="pull-left" ng-disabled="splittedInterval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="splittedInterval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                  <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n									<fieldset ng-disabled="splittedInterval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="splittedInterval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n									<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="splittedInterval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n                </div>\n              </div>\n              <!-- END TIME -->\n\n              <!-- START WEEKDAY -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.wd_from" theme="bootstrap" name="wd_from">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                      {{$translate.instant(weekDay.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.wd_to" theme="bootstrap" name="wd_to">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                      {{$translate.instant(weekDay.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END WEEKDAY -->\n\n              <!-- START MONTHDAY -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.md_from" theme="bootstrap" name="md_from">\n                    <ui-select-match>{{$select.selected}}</ui-select-match>\n                    <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                      {{monthDay}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.md_to" theme="bootstrap" name="md_to">\n                    <ui-select-match>{{$select.selected}}</ui-select-match>\n                    <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                      {{monthDay}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END MONTHDAY -->\n\n              <!-- START MONTH -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.m_from" theme="bootstrap" name="m_from">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                      {{$translate.instant(month.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.m_to" theme="bootstrap" name="m_to">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                      {{$translate.instant(month.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END MONTH -->\n\n\n\n							<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n            </form>\n          </wz-step>\n\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/view/view.subintervalSettings.html",'\n<div class="row" data-ng-init="getSubInterval()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_SUBINTERVAL_SETTINGS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="updateItem()">\n					<div class="profile-usertitle-name">\n						{{subinterval.name}}\n					</div>\n          <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.subinterval.name.$valid)">\n            <form name="forms.subinterval" novalidate>\n\n              <!-- START NAME -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.subinterval.name.$touched || forms.subinterval.$submitted) && forms.subinterval.name.$invalid}">\n                <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="subinterval.name" required/>\n                <span data-ng-show="(forms.subinterval.name.$touched || forms.subinterval.$submitted) && forms.subinterval.name.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END NAME -->\n\n              <!-- START TIME -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                <div class="input-group input-large">\n									<fieldset class="pull-left" ng-disabled="splittedInterval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="splittedInterval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                  <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n									<fieldset ng-disabled="splittedInterval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="splittedInterval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n									<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="splittedInterval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n                </div>\n              </div>\n              <!-- END TIME -->\n\n              <!-- START WEEKDAY -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.wd_from" theme="bootstrap" name="wd_from">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                      {{$translate.instant(weekDay.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.wd_to" theme="bootstrap" name="wd_to">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                      {{$translate.instant(weekDay.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END WEEKDAY -->\n\n              <!-- START MONTHDAY -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.md_from" theme="bootstrap" name="md_from">\n                    <ui-select-match>{{$select.selected}}</ui-select-match>\n                    <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                      {{monthDay}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.md_to" theme="bootstrap" name="md_to">\n                    <ui-select-match>{{$select.selected}}</ui-select-match>\n                    <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                      {{monthDay}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END MONTHDAY -->\n\n              <!-- START MONTH -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.m_from" theme="bootstrap" name="m_from">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                      {{$translate.instant(month.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.m_to" theme="bootstrap" name="m_to">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                      {{$translate.instant(month.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END MONTH -->\n\n\n\n							<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n            </form>\n          </wz-step>\n\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/view/view.subintervals.html",'<div ui-view class="profile-content">\n<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SUBINTERVALS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/intervals/view/{{interval.id}}/subinterval" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_SUBINTERVAL\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th>{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th>{{ \'APPLICATION_TIME\' | translate }}</th>\n								<th width="20%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody data-ng-model="subIntervals">\n					    <tr data-ng-repeat="subinterval in subIntervals">\n								<td>{{subinterval.name}}</td>\n								<td>{{subinterval.interval}}</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/intervals/view/{{interval.id}}/subintervals/settings/{{subinterval.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(subinterval.name+\' interval\',subinterval.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="subIntervals.length">\n								<td colspan="3" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_SUBINTERVALS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n</div>\n'),
-a.put("app/interval/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-clock"></i>\n				<a href="/intervals/list">{{ \'APPLICATION_INTERVALS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/intervals/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="getContexts()">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-clock font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_INTERVAL\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.interval.$valid)">\n			    <form name="forms.interval" novalidate>\n\n            <!-- START NAME -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.name.$touched || forms.interval.$submitted) && forms.interval.name.$invalid}">\n              <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n              <span data-ng-show="(forms.interval.name.$touched || forms.interval.$submitted) && forms.interval.name.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END NAME -->\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/login/login.html",'<!-- BEGIN LOGO -->\n<div class="logo">\n	<a href="index.html">\n	<img src="assets/images/logo-big.png" alt=""/>\n	</a>\n</div>\n<!-- END LOGO -->\n<!-- BEGIN LOGIN -->\n<div class="content">\n	<!-- BEGIN LOGIN FORM -->\n	<form class="login-form" name="loginForm" data-ng-show="!flagLogin1" data-ng-submit="login(loginForm)" novalidate>\n		<h3 class="form-title">Sign In</h3>\n		<div class="alert alert-danger" data-ng-class="{\'display-hide\': !loginSubmitted || !errorLogin}">\n			<button class="close" data-close="alert"></button>\n			<span>{{ errorLog ? errorLog : \'Enter any username and password.\'}}</span>\n		</div>\n		<div class="form-group" data-ng-class="{\'has-error\': loginSubmitted && loginForm.name.$invalid}">\n			<label class="control-label">Username</label>\n      <div class="input-icon">\n        <i class="fa fa-user"></i>\n        <input ng-enter="login(loginForm)" class="form-control form-control-solid placeholder-no-fix" type="text" autocomplete="off" placeholder="Username" name="name" ng-model="userLogin.name" required/>\n      </div>\n      <span data-ng-show="loginSubmitted && loginForm.name.$invalid" class="help-block">Username is required.</span>\n		</div>\n		<div class="form-group" data-ng-class="{\'has-error\': loginSubmitted && loginForm.password.$invalid}">\n			<label class="control-label">Password</label>\n      <div class="input-icon">\n        <i class="fa fa-lock"></i>\n        <input ng-enter="login(loginForm)" class="form-control form-control-solid placeholder-no-fix" type="password" autocomplete="off" placeholder="Password" name="password" ng-model="userLogin.password" required/>\n      </div>\n      <span data-ng-show="loginSubmitted && loginForm.password.$invalid" class="help-block">Password is required.</span>\n		</div>\n		<div class="form-actions">\n			<button type="submit" class="btn btn-success uppercase">Login</button>\n      <label class="rememberme check">\n        <input type="checkbox"> Remember me\n      </label>\n			<!-- <label class="rememberme check">\n			<input type="checkbox" name="remember" value="1"/>Remember </label> -->\n			<!-- <a href="javascript:;" id="forget-password" class="forget-password">Forgot Password?</a> -->\n		</div>\n		<div class="login-options">\n			<h4>Follow Us on</h4>\n			<ul class="social-icons">\n				<li>\n					<a class="social-icon-color facebook" data-original-title="facebook" href="https://www.facebook.com/xenialab"></a>\n				</li>\n				<li>\n					<a class="social-icon-color twitter" data-original-title="Twitter" href="https://twitter.com/xenialab"></a>\n				</li>\n				<li>\n					<a class="social-icon-color googleplus" data-original-title="Goole Plus" href="#"></a>\n				</li>\n				<li>\n					<a class="social-icon-color linkedin" data-original-title="Linkedin" href="#"></a>\n				</li>\n			</ul>\n		</div>\n	</form>\n</div>\n<div class="copyright">\n	 2016 © xCALLY MOTION.\n</div>\n<!-- END LOGIN -->\n'),a.put("app/mail/account/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-notebook"></i>\n						<a href="#">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="mailAccounts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/mail/accounts/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getMailAccounts([\'name\', \'description\', {MailServerIn:\'username\'}])" csv-header="[\'Name\', \'Description\', \'Email Address\']" field-separator=";" filename="mail_accounts.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedMailAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n				  <thead>\n						<tr>\n							<th colspan="6">\n								<div class="row">\n									<div class="col-md-6">\n										<ui-select class="input-xsmall" ng-model="conf.mailAccountsByPage" theme="bootstrap" ng-disabled="disabled">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="mailAccountByPage in mailAccountsByPage | filter: $select.search">\n												<div ng-bind-html="mailAccountByPage.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n									</div>\n									<div class="col-md-6">\n										<div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div>\n									</div>\n								</div>\n							</th>\n						</tr>\n					  <tr>\n							<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(mailAccount, checked)" checklist-model checklist-value="id"></th>\n					    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n							<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n							<th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n							<th st-sort="description"> IMAP</th>\n							<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n					  </tr>\n				  </thead>\n				  <tbody>\n				    <tr data-ng-repeat="mailAccount in displayedMailAccounts">\n							<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mailAccounts.checked" checklist-value="mailAccount.id"></td>\n				      <td>{{mailAccount.name}}</td>\n							<td>{{mailAccount.description}}</td>\n							<td><a ng-href="mailto:{{mailAccount.MailServerIn.username}}">{{mailAccount.MailServerIn.username}}</a></td>\n							<td>\n								<span class="label label-sm" data-ng-class="mailAccount.MailServerIn.state === \'CONNECTED\' ? \'label-success\' : \'label-danger\'">\n									{{ mailAccount.MailServerIn.state | uppercase }}\n								</span>\n							</td>\n				      <td>\n				        <a class="btn default btn-xs blue-stripe" data-ng-href="/mail/accounts/view/{{mailAccount.id}}/settings">\n									{{ \'APPLICATION_PROFILE\' | translate }}\n				        </a>\n				        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(mailAccount.name, mailAccount.id)">\n									{{ \'APPLICATION_DELETE\' | translate }}\n				        </a>\n				      </td>\n				    </tr>\n						<tr data-ng-hide="displayedMailAccounts.length">\n							<td colspan="6" class="text-center">\n							<i>{{ \'MESSAGE_NO_AVAILABLE_ACCOUNTS\' | translate }}</i>\n							</td>\n						</tr>\n				  </tbody>\n				  <tfoot>\n						<tr>\n							<td/>\n					    <td>\n								<div class="input-icon right">\n									<i class="fa fa-search"></i>\n									<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n								</div>\n					    </td>\n							<td>\n								<div class="input-icon right">\n									<i class="fa fa-search"></i>\n									<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n								</div>\n					    </td>\n							<!-- <td>\n								<div class="input-icon right">\n									<i class="fa fa-search"></i>\n									<input st-search="address" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n								</div>\n					    </td> -->\n					    <td/>\n							<td/>\n					  </tr>\n						<tr>\n							<td colspan="6" class="text-center">\n								<div class="pagination" st-pagination st-items-by-page="conf.mailAccountsByPage.value" st-displayed-pages="7"></div>\n							</td>\n						</tr>\n				  </tfoot>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/account/view/action/list/list.html",'<div class="row" data-ng-init="initActons()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/mail/accounts/view/{{account.id}}/actions/wizard" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACTION\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th class="input-small" align="center">{{\'APPLICATION_APPLICATION\' | translate}}</th>\n								<th class="input-small" align="center">{{\'APPLICATION_TIMEOUT\' | translate}} [s]</th>\n						    <th align="center">{{ \'APPLICATION_INTERVAL\' | translate }}</th>\n								<th class="input-small">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody ui-sortable="sortableOptions" data-ng-model="mailApplications">\n					    <tr data-ng-repeat="application in mailApplications">\n								<!-- <td><span data-ng-class="{\'label-info\': application.app == \'agent\', \'label-success\': application.app == \'queue\'}" class="label label-sm"> {{application.app}} </span></td> -->\n								<td align="center">\n									<span>\n										<i data-ng-class="application.User ? \'icon-user\' : \'icon-docs\'"></i>\n									</span>\n								</td>\n								<td align="center">{{application.timeout}}</td>\n								<td align="center">{{application.Interval ? application.Interval.name : application.interval}}</td>\n								<td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/mail/accounts/view/{{account.id}}/actions/view/{{application.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app, application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="mailApplications.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No applications available</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/account/view/action/view/view.html",'\n<div class="row" data-ng-init="initAction()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-directions font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.settings" ng-submit="updateItem()" novalidate>\n					<!-- START APP -->\n					<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n						<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n						<ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n							<ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n							<ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n								<div ng-bind-html="app.name | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n						<span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END APP -->\n\n					<!-- START HOST -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n						<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n						<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n						<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END HOST -->\n\n					<div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n						<!-- START QUEUE -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n							<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="application.MailQueueId" name="queue" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n								<ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n									<div ng-bind-html="queue.name | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END QUEUE -->\n					</div>\n\n					<div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n						<!-- START AGENT -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$invalid}">\n							<label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n								<ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n									<div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END AGENT -->\n					</div>\n\n					<!-- START INTERVAL_TYPE -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$invalid}">\n						<label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n						<ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n							<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n							<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n								{{ intType.name | translate }}\n							</ui-select-choices>\n						</ui-select>\n						<span data-ng-show="(forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END INTERVAL_TYPE -->\n\n					<div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n						<!-- START TIME -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n							<div class="input-group input-large">\n								<fieldset class="pull-left" ng-disabled="application.alwaysTime">\n									<uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n								</fieldset>\n								<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n								<fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n								<!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n							</div>\n						</div>\n						<!-- END TIME -->\n\n						<!-- START ALWAYS -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n							<div class="input-group input-large">\n								<label class="control-label pointer-cursor">\n									<input\n										bs-switch\n										data-ng-model="application.alwaysTime"\n										type="checkbox"\n										switch-active="{{ isActive }}"\n										switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n										switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n										switch-on-color="{{ onColor }}"\n										switch-off-color="{{ offColor }}"\n										switch-animate="{{ animate }}"\n										switch-size="{{ size }}"\n										switch-label="{{ label }}"\n										switch-icon="{{ icon }}"\n										switch-radio-off="{{ radioOff }}"\n										switch-label-width="{{ labelWidth }}"\n										switch-handle-width="{{ handleWidth }}">\n									<!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n								</label>\n							</div>\n						</div>\n						<!-- END ALWAYS -->\n\n						<!-- START WEEKDAY -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n										{{ weekDay.name | translate}}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n										{{ weekDay.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END WEEKDAY -->\n\n						<!-- START MONTHDAY -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n									<ui-select-match>{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n										{{monthDay}}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n									<ui-select-match>{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n										{{monthDay}}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END MONTHDAY -->\n\n						<!-- START MONTH -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n										{{ month.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n										{{ month.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END MONTH -->\n					</div>\n\n					<div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n						<!-- START INTERVALS -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$invalid}">\n							<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n								<ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n									{{ interval.name}}\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END INTERVALS -->\n\n					</div>\n					<button class="btn green-haze" type="submit">{{\'APPLICATION_UPDATE\' | translate}}</button>\n				</form>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/account/view/action/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-directions font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.action.$valid)">\n						<form name="forms.action" novalidate>\n							<!-- START APP -->\n							<div class="form-group"  data-ng-class="{\'has-error\': forms.action.$submitted && forms.action.app.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n									<ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n										<div ng-bind-html="app.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.action.$submitted && forms.action.app.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END APP -->\n\n							<!-- START HOST -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n								<span data-ng-show="(forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid && forms.action.timeout.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END HOST -->\n\n							<div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n								<!-- START QUEUE -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$invalid}">\n									<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.MailQueueId" name="queue" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n											<div ng-bind-html="queue.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END QUEUE -->\n							</div>\n\n							<div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n								<!-- START AGENT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$invalid}">\n									<label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n										<ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n											<div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END AGENT -->\n							</div>\n\n							<!-- START INTERVAL_TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n										{{ intType.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="(forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERVAL_TYPE -->\n\n							<div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n								<!-- START TIME -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n									<div class="input-group input-large">\n										<fieldset class="pull-left" ng-disabled="application.alwaysTime">\n											<uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n										</fieldset>\n										<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n										<fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n										<!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n									</div>\n								</div>\n								<!-- END TIME -->\n\n								<!-- START ALWAYS -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n									<div class="input-group input-large">\n										<label class="control-label pointer-cursor">\n											<input\n												bs-switch\n												data-ng-model="application.alwaysTime"\n												type="checkbox"\n												switch-active="{{ isActive }}"\n												switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n												switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n												switch-on-color="{{ onColor }}"\n												switch-off-color="{{ offColor }}"\n												switch-animate="{{ animate }}"\n												switch-size="{{ size }}"\n												switch-label="{{ label }}"\n												switch-icon="{{ icon }}"\n												switch-radio-off="{{ radioOff }}"\n												switch-label-width="{{ labelWidth }}"\n												switch-handle-width="{{ handleWidth }}">\n											<!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n										</label>\n									</div>\n								</div>\n								<!-- END ALWAYS -->\n\n								<!-- START WEEKDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{ weekDay.name | translate}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{ weekDay.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END WEEKDAY -->\n\n								<!-- START MONTHDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTHDAY -->\n\n								<!-- START MONTH -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{ month.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{ month.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTH -->\n							</div>\n\n							<div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n								<!-- START INTERVALS -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n											{{ interval.name}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVALS -->\n\n							</div>\n\n							<input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONTINUE\' | translate}}"/>\n						</form>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<!-- <button class="btn green-haze" type="button" wz-previous><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button> -->\n						<input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/mail/account/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="/">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-notebook"></i>\n					<a href="/mail/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="account"></i>\n				</li>\n				<li data-ng-show="account">\n					<a href="#">{{ account.description || account.name }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img ng-src="assets/images/media/account.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ account.description || account.name }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{account.email}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li ng-class="{active: $state.is(\'main.mail.accounts.view.settings\')}">\n							<a href="/mail/accounts/view/{{account.id}}/settings">\n							<i class="icon-settings"></i>\n							{{\'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li ng-class="{active: $state.includes(\'main.mail.accounts.view.actions\')}">\n							<a href="/mail/accounts/view/{{account.id}}/actions/list">\n							<i class="icon-directions"></i>\n							{{\'APPLICATION_ACTIONS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/account/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">IMAP</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">SMTP</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.formInfo" data-ng-submit="forms.formInfo.$valid && updateItemMailAccount()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formInfo.name.$touched || forms.formInfo.$submitted) && forms.formInfo.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n								<span data-ng-show="(forms.formInfo.name.$touched || forms.formInfo.$submitted) && forms.formInfo.name.$invalid && forms.formInfo.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<!-- START EMAIL -->\n							<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.formInfo.address.$touched || forms.formInfo.$submitted) && forms.formInfo.address.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="address" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="account.address" required/>\n								<span data-ng-show="(forms.formInfo.infoEmail.$touched || forms.formInfo.$submitted) && forms.formInfo.address.$invalid && forms.formInfo.address.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div> -->\n							<!-- END EMAIL -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n					<!-- IMAP TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<form name="forms.formIn" data-ng-submit="forms.formIn.$valid && updateItemMailServerIn()" novalidate>\n							<!-- START PROTOCOL -->\n							<!-- <div class="form-group">\n								<label class="control-label">IMAP/POP3</label>\n								<button type="button" name="protocol" class="btn btn-default form-control" data-ng-model="account.MailServerIn.protocol" bs-checkbox>{{account.MailServerIn.protocol ? \'IMAP\' : \'POP3\'}}</button>\n							</div> -->\n							<!-- END PROTOCOL -->\n\n							<!-- START HOST -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.host.$touched || forms.formIn.$submitted) && forms.formIn.host.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.host" required/>\n								<span data-ng-show="(forms.formIn.host.$touched || forms.formIn.$submitted) && forms.formIn.host.$invalid && forms.formIn.host.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END HOST -->\n\n							<!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.username.$touched || forms.formIn.$submitted) && forms.formIn.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.username" name="username" required/>\n								<span data-ng-show="(forms.formIn.username.$touched || forms.formIn.$submitted) && forms.formIn.username.$invalid && forms.formIn.username.$error.required"  class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.password.$touched || forms.formIn.$submitted) && forms.formIn.password.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.password" required/>\n								<span data-ng-show="(forms.formIn.password.$touched || forms.formIn.$submitted) && forms.formIn.password.$invalid && forms.formIn.password.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n							<!-- START PORT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.port.$touched || forms.formIn.$submitted) && forms.formIn.port.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.port" required/>\n								<span data-ng-show="(forms.formIn.port.$touched || forms.formIn.$submitted) && forms.formIn.port.$invalid && forms.formIn.port.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formIn.port.$touched || forms.formIn.$submitted) && forms.formIn.port.$invalid && forms.formIn.port.$error.number" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PORT -->\n\n							<!-- START MAILBOX -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}</label>\n								<input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.mailbox"/>\n							</div>\n							<!-- END MAILBOX -->\n\n							<!-- START SEARCH FILTER -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_SEARCH_FILTER\' | translate}}</label>\n								<ui-select data-ng-model="account.MailServerIn.filter" name="filter" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="filter in [\'UNSEEN\'] | filter: $select.search">\n										<div ng-bind-html="filter | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<!-- <input type="text" name="filter" placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}" class="form-control" data-ng-model="forms.formIn.form.filter"/> -->\n							</div>\n							<!-- START SEARCH FILTER -->\n\n							<!-- START DELETE -->\n							<div class="form-group" data-ng-show="account.MailServerIn.protocol">\n								<label class="control-label">{{\'APPLICATION_DELETE_MAIL_FROM_SERVER\' | translate}}</label><br>\n								<!-- <button type="button" name="delete"  class="btn btn-default form-control" data-ng-model="account.MailServerIn.delete" btn-checkbox> {{account.MailServerIn.delete ? $translate.instant(\'APPLICATION_YES\') : $translate.instant(\'APPLICATION_NO\') | uppercase}} </button> -->\n								<input\n									bs-switch\n									ng-model="account.MailServerIn.delete"\n									type="checkbox"\n									switch-active="{{ isActive }}"\n									switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n									switch-on-color="{{ onColor }}"\n									switch-off-color="{{ offColor }}"\n									switch-animate="{{ animate }}"\n									switch-size="{{ size }}"\n									switch-label="{{ label }}"\n									switch-icon="{{ icon }}"\n									switch-radio-off="{{ radioOff }}"\n									switch-label-width="{{ labelWidth }}"\n									switch-handle-width="{{ handleWidth }}">\n							</div>\n							<!-- END DELETE -->\n\n							<!-- START SSL -->\n							<div class="form-group">\n								<label class="control-label">SSL</label><br>\n								<!-- <button type="button" name="ssl"  class="btn btn-default form-control" data-ng-model="account.MailServerIn.ssl" btn-checkbox> {{account.MailServerIn.ssl ? $translate.instant(\'APPLICATION_ENABLED\') : $translate.instant(\'APPLICATION_DISABLED\') | uppercase}} </button> -->\n								<input\n									bs-switch\n									ng-model="account.MailServerIn.ssl"\n									type="checkbox"\n									switch-active="{{ isActive }}"\n									switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n									switch-on-color="{{ onColor }}"\n									switch-off-color="{{ offColor }}"\n									switch-animate="{{ animate }}"\n									switch-size="{{ size }}"\n									switch-label="{{ label }}"\n									switch-icon="{{ icon }}"\n									switch-radio-off="{{ radioOff }}"\n									switch-label-width="{{ labelWidth }}"\n									switch-handle-width="{{ handleWidth }}">\n							</div>\n							<!-- END SSL -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END IMAP TAB -->\n\n					<!-- SMTP TAB -->\n					<div class="tab-pane" id="tab_1_3">\n						<form name="forms.formOut" data-ng-submit="forms.formOut.$valid && updateItemMailServerOut()" novalidate>\n\n							<!-- START HOST -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.host.$touched || forms.formOut.$submitted) && forms.formOut.host.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.host" required/>\n								<span data-ng-show="(forms.formOut.host.$touched || forms.formOut.$submitted) && forms.formOut.host.$invalid && forms.formOut.host.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END HOST -->\n\n							<!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.username.$touched || forms.formOut.$submitted) && forms.formOut.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.username" required/>\n								<span data-ng-show="(forms.formOut.username.$touched || forms.formOut.$submitted) && forms.formOut.username.$invalid && forms.formOut.username.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.password.$touched || forms.formOut.$submitted) && forms.formOut.password.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.password" required/>\n								<span data-ng-show="(forms.formOut.password.$touched || forms.formOut.$submitted) && forms.formOut.password.$invalid && forms.formOut.password.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n							<!-- START PORT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.port.$touched || forms.formOut.$submitted) && forms.formOut.port.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.port" required/>\n								<span data-ng-show="(forms.formOut.form.$touched || forms.formOut.$submitted) && forms.formOut.port.$invalid && forms.formOut.port.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formOut.form.$touched || forms.formOut.$submitted) && forms.formOut.port.$invalid && forms.formOut.port.$error.number" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PORT -->\n\n							<!-- START SSL -->\n							<div class="form-group">\n								<label class="control-label">SSL</label><br>\n								<!-- <button type="button" name="ssl"  class="btn btn-default form-control" data-ng-model="account.MailServerOut.ssl" btn-checkbox> {{account.MailServerOut.ssl ? $translate.instant(\'APPLICATION_ENABLED\') : $translate.instant(\'APPLICATION_DISABLED\') | uppercase}} </button> -->\n								<input\n									bs-switch\n									ng-model="account.MailServerOut.ssl"\n									type="checkbox"\n									switch-active="{{ isActive }}"\n									switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n									switch-on-color="{{ onColor }}"\n									switch-off-color="{{ offColor }}"\n									switch-animate="{{ animate }}"\n									switch-size="{{ size }}"\n									switch-label="{{ label }}"\n									switch-icon="{{ icon }}"\n									switch-radio-off="{{ radioOff }}"\n									switch-label-width="{{ labelWidth }}"\n									switch-handle-width="{{ handleWidth }}">\n							</div>\n							<!-- END SSL -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END SMTP TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/account/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN PAGE HEADER-->\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-notebook"></i>\n					<a href="/mail/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n		<!-- END PAGE HEADER-->\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n	        <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="formValidation(forms.info.$valid)">\n							<form name="forms.info" novalidate>\n								<!-- START NAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n									<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="info.name" required/>\n									<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END NAME -->\n\n								<!-- START DESCRIPTION -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n									<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="info.description"/>\n								</div>\n								<!-- END DESCRIPTION -->\n\n								<!-- START EMAIL -->\n								<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.info.address.$touched || forms.info.$submitted) && forms.info.address.$invalid}">\n									<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="email" name="address" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="info.address" required/>\n									<span data-ng-show="(forms.info.address.$touched || forms.info.$submitted) && forms.info.address.$invalid && forms.info.address.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div> -->\n								<!-- END EMAIL -->\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n							</form>\n						</wz-step>\n\n						<wz-step title="IMAP" canexit="formValidation(forms.in.$valid)">\n							<form name="forms.in" novalidate>\n								<!-- START PROTOCOL -->\n								<!-- <div class="form-group">\n									<label class="control-label">IMAP/POP3</label>\n									<button type="button" name="protocol" class="btn btn-default form-control" data-ng-model="in.protocol" bs-checkbox>{{in.protocol ? \'IMAP\' : \'POP3\'}}</button>\n								</div> -->\n								<!-- END PROTOCOL -->\n\n								<!-- START HOST -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.in.host.$touched || forms.in.$submitted) && forms.in.host.$invalid}">\n									<label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n									<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="in.host" required/>\n									<span data-ng-show="(forms.in.host.$touched || forms.in.$submitted) && forms.in.host.$invalid && forms.in.host.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END HOST -->\n\n								<!-- START USERNAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.in.username.$touched || forms.in.$submitted) && forms.in.username.$invalid}">\n									<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="in.username" name="username" required/>\n									<span data-ng-show="(forms.in.username.$touched || forms.in.$submitted) && forms.in.username.$invalid && forms.in.username.$error.required"  class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END USERNAME -->\n\n								<!-- START PASSWORD -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.in.password.$touched || forms.in.$submitted) && forms.in.password.$invalid}">\n									<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="in.password" required/>\n									<span data-ng-show="(forms.in.password.$touched || forms.in.$submitted) && forms.in.password.$invalid && forms.in.password.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END PASSWORD -->\n\n								<!-- START PORT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid}">\n									<label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="in.port" required/>\n									<span data-ng-show="(forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid && forms.in.port.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n									<span data-ng-show="(forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid && forms.in.port.$error.number" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END PORT -->\n\n								<!-- START MAILBOX -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}</label>\n									<input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="in.mailbox"/>\n								</div>\n								<!-- END MAILBOX -->\n\n								<!-- START SEARCH FILTER -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_SEARCH_FILTER\' | translate}}</label>\n									<ui-select data-ng-model="in.filter" name="filter" theme="bootstrap">\n				            <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n				            <ui-select-choices repeat="filter in [\'UNSEEN\'] | filter: $select.search">\n				              <div data-ng-bind="filter | highlight: $select.search"></div>\n				            </ui-select-choices>\n				          </ui-select>\n									<!-- <input type="text" name="filter" placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}" class="form-control" data-ng-model="in.filter"/> -->\n								</div>\n								<!-- START SEARCH FILTER -->\n\n								<!-- START DELETE -->\n								<div class="form-group" data-ng-show="in.protocol">\n									<label class="control-label">{{\'APPLICATION_DELETE_MAIL_FROM_SERVER\' | translate}}</label><br>\n									<!-- <button type="button" name="delete"  class="btn btn-default form-control" data-ng-model="in.delete" btn-checkbox> {{in.delete ? $translate.instant(\'APPLICATION_YES\') : $translate.instant(\'APPLICATION_NO\') | uppercase}} </button> -->\n									<input\n										bs-switch\n										ng-model="in.delete"\n										type="checkbox"\n										switch-active="{{ isActive }}"\n										switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n										switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n										switch-on-color="{{ onColor }}"\n										switch-off-color="{{ offColor }}"\n										switch-animate="{{ animate }}"\n										switch-size="{{ size }}"\n										switch-label="{{ label }}"\n										switch-icon="{{ icon }}"\n										switch-radio-off="{{ radioOff }}"\n										switch-label-width="{{ labelWidth }}"\n										switch-handle-width="{{ handleWidth }}">\n								</div>\n								<!-- END DELETE -->\n\n								<!-- START SSL -->\n								<div class="form-group">\n									<label class="control-label">SSL</label><br>\n									<!-- <button type="button" name="ssl"  class="btn btn-default form-control" data-ng-model="in.ssl" btn-checkbox> {{in.ssl ? $translate.instant(\'APPLICATION_ENABLED\') : $translate.instant(\'APPLICATION_DISABLED\') | uppercase}} </button> -->\n									<input\n										bs-switch\n										ng-model="in.ssl"\n										type="checkbox"\n										switch-active="{{ isActive }}"\n										switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n										switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n										switch-on-color="{{ onColor }}"\n										switch-off-color="{{ offColor }}"\n										switch-animate="{{ animate }}"\n										switch-size="{{ size }}"\n										switch-label="{{ label }}"\n										switch-icon="{{ icon }}"\n										switch-radio-off="{{ radioOff }}"\n										switch-label-width="{{ labelWidth }}"\n										switch-handle-width="{{ handleWidth }}">\n								</div>\n								<!-- END SSL -->\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n							</form>\n						</wz-step>\n						<wz-step title="SMTP" canexit="formValidation(forms.out.$valid)">\n							<form name="forms.out" novalidate>\n\n								<!-- START HOST -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.out.host.$touched || forms.out.$submitted) && forms.out.host.$invalid}">\n									<label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n									<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="out.host" required/>\n									<span data-ng-show="(forms.out.host.$touched || forms.out.$submitted) && forms.out.host.$invalid && forms.out.host.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END HOST -->\n\n								<!-- START USERNAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.out.username.$touched || forms.out.$submitted) && forms.out.username.$invalid}">\n									<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="out.username" required/>\n									<span data-ng-show="(forms.out.username.$touched || forms.out.$submitted) && forms.out.username.$invalid && forms.out.username.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END USERNAME -->\n\n								<!-- START PASSWORD -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.out.password.$touched || forms.out.$submitted) && forms.out.password.$invalid}">\n									<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="out.password" required/>\n									<span data-ng-show="(forms.out.password.$touched || forms.out.$submitted) && forms.out.password.$invalid && forms.out.password.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END PASSWORD -->\n\n								<!-- START PORT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.out.port.$touched || forms.out.$submitted) && forms.out.port.$invalid}">\n									<label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="out.port" required/>\n									<span data-ng-show="(out.$touched || forms.out.$submitted) && forms.out.port.$invalid && forms.out.port.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n									<span data-ng-show="(out.$touched || forms.out.$submitted) && forms.out.port.$invalid && forms.out.port.$error.number" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END PORT -->\n\n								<!-- START SSL -->\n								<div class="form-group">\n									<label class="control-label">SSL</label><br>\n									<!-- <button type="button" name="ssl"  class="btn btn-default form-control" data-ng-model="out.ssl" btn-checkbox> {{out.ssl ? $translate.instant(\'APPLICATION_ENABLED\') : $translate.instant(\'APPLICATION_DISABLED\') | uppercase}} </button> -->\n									<input\n										bs-switch\n										ng-model="out.ssl"\n										type="checkbox"\n										switch-active="{{ isActive }}"\n										switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n										switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n										switch-on-color="{{ onColor }}"\n										switch-off-color="{{ offColor }}"\n										switch-animate="{{ animate }}"\n										switch-size="{{ size }}"\n										switch-label="{{ label }}"\n										switch-icon="{{ icon }}"\n										switch-radio-off="{{ radioOff }}"\n										switch-label-width="{{ labelWidth }}"\n										switch-handle-width="{{ handleWidth }}">\n								</div>\n								<!-- END SSL -->\n\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n								<input class="btn default" type="button" value="{{\'APPLICATION_BACK\' | translate}}" wz-previous/>\n							</form>\n						</wz-step>\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/mail/automation/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-settings"></i>\n						<a href="#">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-settings font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="mailAutomations.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_AUTOMATION\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/mail/automations/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getMailAutomations([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="mail_automations.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedMailAutomations" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.mailAutomationsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="mailAutomationByPage in mailAutomationsByPage | filter: $select.search">\n													<div ng-bind-html="mailAutomationByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(mailAutomation, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="mailAutomation in displayedMailAutomations">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mailAutomations.checked" checklist-value="mailAutomation.id"></td>\n					      <td>{{mailAutomation.name}}</td>\n								<td>{{mailAutomation.description}}</td>\n								<td>\n									<input\n										data-ng-change="updateItem(mailAutomation.id, mailAutomation.status)",\n								    bs-switch\n								    ng-model="mailAutomation.status"\n								    type="checkbox"\n								    switch-active="{{ isActive }}"\n								    switch-on-text="{{ onText }}"\n								    switch-off-text="{{ offText }}"\n								    switch-on-color="{{ onColor }}"\n								    switch-off-color="{{ offColor }}"\n								    switch-animate="{{ animate }}"\n								    switch-size="{{ size }}"\n								    switch-label="{{ label }}"\n								    switch-icon="{{ icon }}"\n								    switch-radio-off="{{ radioOff }}"\n								    switch-label-width="{{ labelWidth }}"\n								    switch-handle-width="{{ handleWidth }}">\n								</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/mail/automations/view/{{mailAutomation.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(mailAutomation.name, mailAutomation.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedMailAutomations.length">\n								<td colspan="6" class="text-center">\n									<i>No available automations</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.mailAutomationsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/automation/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="/">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/mail/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="automation"></i>\n				</li>\n				<li data-ng-show="automation">\n					<a href="#">{{ automation.description || automation.name }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/automation.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ automation.name }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{automation.description}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.mail.automations.view.settings\')}">\n							<a href="/mail/automations/view/{{automation.id}}/settings">\n							<i class="icon-settings"></i>\n							{{\'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/automation/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">OR {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">AND {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_4" data-toggle="tab">{{\'APPLICATION_ACTIONS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.info" data-ng-submit="forms.info.$valid && updateAutomation()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="automation.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="automation.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n					<!-- IMAP TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewCondition(\'or\')">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'or\'}">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.condition" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n													<div data-ng-bind="condition.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.operator" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="operator.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-4" data-ng-switch="condition.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="condition.attribute" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n										</div>\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeCondition(condition.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessConditions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n					</div>\n					<!-- END IMAP TAB -->\n\n					<div class="tab-pane" id="tab_1_3">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewCondition(\'and\')">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'and\'}">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.condition" name="conditionAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n													<div data-ng-bind="condition.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.operator" name="operatorAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="operator.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-4" data-ng-switch="condition.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="condition.attribute" name="attributeAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" data-ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n											<span data-ng-show="forms.and.attributeAnd{{$index}}.$invalid && forms.and.attributeAnd{{$index}}.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeCondition(condition.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessConditions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n					</div>\n\n					<!-- SMTP TAB -->\n					<div class="tab-pane" id="tab_1_4">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewAction()">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="action in automation.BusinessActions">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="action.condition" theme="bootstrap" on-select="updateAction(action.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="action.key as action in automations.actions | filter: $select.search">\n													<div data-ng-bind="action.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3" data-ng-switch="action.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="action.attribute" theme="bootstrap" on-select="updateAction(action.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(action.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" data-ng-model="action.attribute" data-ng-blur="updateAction(action.id, \'attribute\', action.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n										</div>\n									</div>\n									<div class="col-md-4">\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeAction(action.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessActions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n\n					</div>\n					<!-- END SMTP TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/automation/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN PAGE HEADER-->\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/mail/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n		<!-- END PAGE HEADER-->\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-settings font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n	        <wz-step title="{{\'APPLICATION_NEW_AUTOMATION\' | translate}}" canexit="formValidation(forms.automation.$valid)">\n						<form name="forms.automation" novalidate>\n							<div class="row">\n								<div class="col-md-12">\n									<div class="form-group" data-ng-class="{\'has-error\': forms.automation.name.$invalid && forms.automation.$submitted}">\n										<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<input class="form-control" type="text" name="name" value="" data-ng-model="automations.name" required>\n										<span data-ng-show="forms.automation.name.$invalid && forms.automation.name.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n\n									<div class="form-group" data-ng-class="{\'has-error\': forms.automation.description.$invalid && forms.automation.$submitted}">\n										<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n										<input class="form-control" type="text" name="description" value="" data-ng-model="automations.description">\n										<span data-ng-show="forms.automation.description.$invalid && forms.automation.description.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<hr>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'or\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-user"></i>\n									<span class="caption-subject">Meet <strong>any</strong> of the following conditions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.or">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionOr{{$index}}.$invalid && forms.automation.$submitted && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].condition" name="conditionOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="condition in automations.or[$index].conditions | filter: $select.search">\n														<div data-ng-bind="condition.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.conditionOr{{$index}}.$invalid && forms.automation.conditionOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorOr{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].operator" name="operatorOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="operator.key as operator in automations.or[$index].condition.operators | filter: $select.search">\n														<div data-ng-bind="operator.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.operatorOr{{$index}}.$invalid && forms.automation.operatorOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4" data-ng-switch="automations.or[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].attribute" name="attributeOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.or[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number">\n												<input class="form-control" type="text" min="0" name="attributeOr{{$index}}" value="" data-ng-model="automations.or[$index].attribute" required>\n												<span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'or\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.or.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add condition</i>\n								</div>\n							</div>\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'and\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-people"></i>\n									<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.and">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].condition" name="conditionAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="condition in automations.and[$index].conditions | filter: $select.search">\n														<div data-ng-bind="condition.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.conditionAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].operator" name="operatorAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="operator.key as operator in automations.and[$index].condition.operators | filter: $select.search">\n														<div data-ng-bind="operator.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.operatorAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4" data-ng-switch="automations.and[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].attribute" name="attributeAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.and[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number">\n												<input class="form-control" type="text" min="0" name="attributeAnd{{$index}}" value="" data-ng-model="automations.and[$index].attribute" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid}" required>\n												<span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'and\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.and.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add condition</i>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'actions\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-magic-wand"></i>\n									<span class="caption-subject">Perform these actions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.actions">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.actions.conditionAction{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.actions[$index].condition" name="conditionAction{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="action in automations.actions[$index].actions | filter: $select.search">\n														<div data-ng-bind="action.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.actions.conditionAction{{$index}}.$invalid && forms.actions.conditionAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3" data-ng-switch="automations.actions[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.actions[$index].attribute" name="attributeAction{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.actions[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid}">\n												<input class="form-control" type="text" min="0" name="attributeAction{{$index}}" value="" data-ng-model="automations.actions[$index].attribute" required>\n												<span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4">\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'actions\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.actions.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add action</i>\n								</div>\n							</div>\n							<div class="row">\n								<div class="col-md-12">\n									<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n								</div>\n							</div>\n						</form>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/mail/inbox/compose/compose.html",'<form class="inbox-compose form-horizontal" id="fileupload" enctype="multipart/form-data" data-ng-init="getMessage()">\n	<pre>\n		{{mailAccounts | json}}\n	</pre>\n	<div class="inbox-compose-btn">\n		<button data-ng-click="sendMailMessage()" class="btn blue"><i class="fa fa-check"></i>{{\'APPLICATION_SEND\' | translate}}</button>\n		<button class="btn inbox-discard-btn" data-ng-click="discard()">{{\'APPLICATION_DISCARD\' | translate}}</button>\n		<button class="btn" data-ng-click="saveMessageAsDraft()">{{\'APPLICATION_SAVE_AS_DRAFT\' | translate}}</button>\n		<span class="message-info"><i>{{form.message}}</i></span>\n	</div>\n	<div class="inbox-form-group">\n		<label class="control-label">{{\'APPLICATION_FROM\' | translate}}: </label>\n		<div class="controls">\n			<ui-select data-ng-model="form.body.from" theme="bootstrap">\n        <ui-select-match placeholder="Select an account">{{$select.selected.name}} <{{$select.selected.address}}></ui-select-match>\n        <ui-select-choices repeat="account in mailAccounts | filter: $select.search">\n          <div ng-bind-html="account.name | highlight: $select.search"></div>\n          <small ng-bind-html="account.address | highlight: $select.search"></small>\n        </ui-select-choices>\n      </ui-select>\n		</div>\n	</div>\n	<div class="inbox-form-group mail-to">\n		<label class="control-label">{{\'APPLICATION_TO\' | translate}}: </label>\n		<div class="controls controls-to">\n			<input type="text" class="form-control" name="to" data-ng-model="form.body.to.address">\n			<span class="inbox-cc-bcc">\n			<span class="inbox-cc" data-ng-show="!flagCC" data-ng-click="switchFlagCC()">\n			Cc </span>\n			<span class="inbox-bcc" data-ng-show="!flagBCC" data-ng-click="switchFlagBCC()">\n			{{\'APPLICATION_BCC\' | translate}} </span>\n			</span>\n		</div>\n	</div>\n	<div class="inbox-form-group input-cc" data-ng-class="{\'display-hide\': !flagCC}">\n		<a href="javascript:;" class="close" data-ng-click="switchFlagCC()">\n		</a>\n		<label class="control-label">Cc:</label>\n		<div class="controls controls-cc">\n			<input type="text" name="cc" class="form-control" data-ng-model="form.body.cc.address">\n		</div>\n	</div>\n	<div class="inbox-form-group input-bcc" data-ng-class="{\'display-hide\': !flagBCC}">\n		<a href="javascript:;" class="close" data-ng-click="switchFlagBCC()">\n		</a>\n		<label class="control-label">{{\'APPLICATION_BCC\' | translate}}:</label>\n		<div class="controls controls-bcc">\n			<input type="text" name="bcc" class="form-control" data-ng-model="form.body.bcc.address">\n		</div>\n	</div>\n	<div class="inbox-form-group">\n		<label class="control-label">{{\'APPLICATION_SUBJECT\' | translate}}: </label>\n		<div class="controls">\n			<input type="text" class="form-control" name="subject" data-ng-model="form.subject">\n		</div>\n	</div>\n	<div class="inbox-form-group">\n		<div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html"></div>\n	</div>\n	<div class="inbox-compose-btn">\n		<button data-ng-click="sendMailMessage()" class="btn blue"><i class="fa fa-check"></i>{{\'APPLICATION_SEND\' | translate}}</button>\n		<button class="btn" data-ng-click="discard()">{{\'APPLICATION_DISCARD\' | translate}}</button>\n		<button class="btn" data-ng-click="saveMessageAsDraft()">{{\'APPLICATION_DRAFT\' | translate}}</button>\n	</div>\n</form>\n'),a.put("app/mail/inbox/inbox.html",'<!-- BEGIN PAGE CONTENT-->\n<!-- <div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_MAILS\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-note"></i>\n					<a href="/mail/inbox/incoming">{{ \'APPLICATION_INBOX\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n	</div>\n</div> -->\n<!-- END PAGE CONTENT-->\n<div class="row inbox">\n	<div class="col-md-12" ui-view>\n	</div>\n</div>\n'),a.put("app/mail/inbox/incoming/incoming.html",'<div class="row inbox">\n	<div class="col-md-12">\n		<div class="inbox-header">\n			<h1 class="pull-left">Inbox</h1>\n			<form class="form-inline pull-right" action="#">\n				<!-- <div class="input-group input-medium">\n					<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search">\n					<span class="input-group-btn">\n					<button type="submit" class="btn green"><i class="fa fa-search"></i></button>\n					</span>\n				</div> -->\n			</form>\n		</div>\n		<div class="inbox-content">\n			<table class="table table-striped table-advance table-hover" st-table="displayedMailRooms" st-pipe="initList">\n				<thead>\n					<tr>\n						<th colspan="9">\n							<input type="checkbox" ng-change="check(null, checked)" checklist-model checklist-value="id">\n							<div class="btn-group">\n								<a data-ng-href="/mail/inbox/compose" class="btn btn-sm blue">\n									<i class="icon-plus"></i> {{\'APPLICATION_NEW_MESSAGE\' | translate}}\n								</a>\n							</div>\n							<div class="btn-group" data-ng-show="mailRooms.checked.length">\n								<a href="#" class="btn btn-sm red" data-ng-click="deleteItems()">\n									<i class="icon-trash"></i> {{\'APPLICATION_DELETE\' | translate}}\n								</a>\n							</div>\n							<div class="input-group input-medium pull-right">\n								<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n								<span class="input-group-addon">\n									<i class="fa fa-search"></i>\n								</span>\n							</div>\n						</th>\n						<!-- <th class="pagination-control" colspan="7"> -->\n							<!-- <span class="pagination-info">\n							1-30 of 789 </span>\n							<a class="btn btn-sm blue">\n							<i class="fa fa-angle-left"></i>\n							</a>\n							<a class="btn btn-sm blue">\n							<i class="fa fa-angle-right"></i>\n							</a> -->\n						<!-- </th> -->\n					</tr>\n				</thead>\n				<tbody>\n					<tr data-messageid="1" data-ng-repeat="mailRoom in displayedMailRooms" class="animate-repeat">\n						<td class="inbox-small-cells">\n							<input type="checkbox" checklist-model="mailRooms.checked" checklist-value="mailRoom.id">\n						</td>\n						<td class="inbox-small-cells" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n							#{{mailRoom.id}}\n						</td>\n						<td class="view-message hidden-xs" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n						 {{mailRoom.subject}}\n						</td>\n						<td class="view-message" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n							{{mailRoom.from}}\n						</td>\n						<td class="view-message" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n							{{mailRoom.MailAccount.description ? mailRoom.MailAccount.description : mailRoom.MailAccount.name || \'APPLICATION_UNKNOWN\' | translate | uppercase}}\n						</td>\n						<td class="view-message" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n							<span class="badge badge-success badge-roundless" data-ng-show="mailRoom.User.fullname"> {{mailRoom.User.fullname}} </span>\n							<span class="badge badge-default badge-roundless" data-ng-hide="mailRoom.User.fullname"> UNASSIGNED </span>\n						</td>\n						<td class="view-message" data-ng-switch="mailRoom.status" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n							<span class="badge badge-default" data-ng-class="{\n							\'badge-danger\': mailRoom.status == \'NEW\',\n							\'badge-warning\': mailRoom.status == \'OPEN\',\n							\'badge-info\': mailRoom.status == \'PENDING\',\n							\'badge-success\': mailRoom.status == \'CLOSED\'}"> {{mailRoom.status | uppercase}} </span>\n						</td>\n						<td class="view-message inbox-small-cells">\n							<i data-ng-show="mailRoom.attachment" class="fa fa-paperclip"></i>\n						</td>\n						<td class="view-message pull-right">\n							<time is="relative-time" datetime="{{mailRoom.updatedAt}}">\n								April 1, 2014\n							</time>\n						</td>\n					</tr>\n					<tr data-ng-hide="displayedMailRooms.length">\n						<td colspan="9" style="text-align:center;">\n							<i>{{ \'MESSAGE_NO_AVAILABLE_CONVERSATIONS\' | translate }}</i>\n						</td>\n					</tr>\n				</tbody>\n				<tfoot>\n					<tr>\n						<td colspan="9" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.mailRoomsByPage.value" st-displayed-pages="7"></div>\n						</td>\n					</tr>\n				</tfoot>\n			</table>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/inbox/room/room.html",'<!-- BEGIN TODO CONTENT -->\n<div class="todo-content" data-ng-init="initRoomView()">\n	<div class="portlet light">\n\n		<div class="portlet-title">\n			<div class="caption" data-ng-show="mailRoom">\n				<i class="icon-bar-chart font-green-sharp hide"></i>\n				<span class="badge badge-default" data-ng-class="{\'badge-error\': mailRoom.status == \'NEW\',\n				\'badge-warning\': mailRoom.status == \'OPEN\',\n				\'badge-success\': mailRoom.status == \'CLOSED\'}"> {{mailRoom.status | uppercase}} </span> -\n				<span class="caption-subject font-green-sharp bold uppercase">{{mailRoom.subject}}</span>\n			</div>\n			<div class="actions" data-ng-show="mailRoom">\n				<div class="btn-group" data-ng-show="Auth.isAdmin()">\n					<a class="btn grey-salsa btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n					{{ \'APPLICATION_ASSIGN\' | translate }} <i class="fa fa-angle-down"></i>\n					</a>\n					<ul class="dropdown-menu pull-right">\n						<li data-ng-repeat="agent in agents">\n							<a href="#" data-ng-click="assignAgent(agent.id)">\n							{{agent.fullname}} <span class="badge badge-default"> {{agent.fullname | uppercase | limitTo : 1}} </span>\n							</a>\n						</li>\n					</ul>\n				</div>\n				<div class="btn-group">\n					<a class="btn green-haze btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true" data-ng-click="updateStatus(\'CLOSED\')">\n					{{ \'APPLICATION_STORE\' | translate }}\n					 <!-- <i class="fa fa-angle-down"></i> -->\n					</a>\n					<!-- <ul class="dropdown-menu pull-right">\n						<li>\n							<a href="#" data-ng-click="updateStatus(\'PENDING\')">\n							{{ \'STATUS_NEW\' | translate | uppercase }} <span class="badge badge-danger">{{ \'STATUS_NEW\' | translate | uppercase | limitTo : 1 }} </span>\n							</a>\n						</li>\n						<li>\n							<a href="#" data-ng-click="updateStatus(\'CLOSED\')">\n							{{ \'STATUS_CLOSED\' | translate | uppercase }} <span class="badge badge-success">{{ \'STATUS_CLOSED\' | translate | uppercase | limitTo : 1 }} </span>\n							</a>\n						</li>\n					</ul> -->\n				</div>\n			</div>\n		</div>\n\n		<div class="portlet-body">\n			<div class="row">\n				<div data-ng-show="mailRoom" data-ng-class="{\'col-md-7 col-sm-7\': mailRoom}">\n					<div class="scroller" id="mailMessages" style="height: 725px; overflow-y: scroll; width: auto;" data-always-visible="1" data-rail-visible1="1" data-initialized="1">\n						<ul class="chats">\n							<li data-ng-class="{\'in\': mailMessage.status == \'RECEIVED\', \'out\': mailMessage.status == \'SENT\' || mailMessage.status == \'SENDING\' || mailMessage.status == \'FAILED\'}" data-ng-repeat="mailMessage in mailRoom.MailMessages | orderBy:\'createdAt\'">\n							<img class="avatar" alt="" data-ng-src="api/users/avatar/{{getCurrentUser().userpic && mailMessage.status === \'SENT\' ? getCurrentUser().userpic : \'unknown_avatar\'}}">\n							<div class="message">\n								<span class="arrow">\n								</span>\n								<span class="bold">From: </span>\n								<span>{{mailMessage.from}}</span>\n								<br>\n								<span class="bold">To: </span>\n								<span>{{mailMessage.to}} </span>\n								<br>\n								<span data-ng-show="mailMessage.cc" class="bold">Cc: </span>\n								<span data-ng-show="mailMessage.cc">{{mailMessage.cc}} </span>\n								<br data-ng-show="mailMessage.cc">\n								<span class="todo-tasklist-date">\n									<span class="label label-sm label-success" data-ng-class="{\'label-success\': mailMessage.status == \'SENT\' || mailMessage.status == \'RECEIVED\', \'label-info\': mailMessage.status == \'SENDING\', \'label-danger\': mailMessage.status == \'FAILED\'}">{{mailMessage.status}}</span>\n									<i class="fa fa-calendar"></i>\n									<time is="relative-time" datetime="{{mailMessage.createdAt}}">\n										April 1, 2014\n									</time>\n								</span>\n								<!-- <p data-ng-class="{\'text-danger\': mailMessage.status === \'FAILED\'}">{{mailMessage.status}}</p> -->\n								<br><br>\n								<span class="body" data-ng-bind-html="mailMessage.html || mailMessage.text" style="white-space: pre-wrap;">\n								</span>\n								<br>\n								<div data-ng-repeat="mailAttachment in mailMessage.MailAttachments">\n									<strong>{{mailAttachment.fileName}}</strong>\n									<span>\n									{{mailAttachment.length}}B </span>\n									<a target="_self" download="{{mailAttachment.fileName}}" href="api/mail/attachments/{{mailAttachment.id}}">\n										{{ \'APPLICATION_DOWNLOAD\' | translate }}\n									</a>\n								</div>\n							</div>\n						</li>\n						</ul>\n					</div>\n				</div>\n				<div data-ng-class="{\'col-md-5 col-sm-5\': mailRoom, \'col-md-12 col-sm-12\': !mailRoom}">\n					<form name="forms.compose" data-ng-submit="forms.compose.$valid && sendMail()" class="form-horizontal" novalidate>\n						<!-- START HEAD -->\n						<div class="form">\n							<div class="form-group">\n								<div class="col-md-12 col-sm-12">\n									<div class="todo-taskbody-user">\n										<img class="todo-userpic pull-left" data-ng-src="api/users/avatar/{{getCurrentUser().userpic ? getCurrentUser().userpic : \'unknown_avatar\'}}" width="50px" height="50px">\n										<span class="todo-username pull-left">{{ getCurrentUser().fullname }}</span>\n									</div>\n								</div>\n							</div>\n\n							<!-- START FROM -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.compose.from.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">From:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select data-ng-model="form.from" theme="bootstrap" name="from" required>\n												<ui-select-match placeholder="From...">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="{address: mailAccount.MailServerOut.username, name: mailAccount.name, id: mailAccount.id} as mailAccount in mailAccounts | filter: $select.search">\n													<div data-ng-bind-html="mailAccount.name | highlight: $select.search"></div>\n													<small data-ng-bind-html="mailAccount.MailServerOut.username | highlight: $select.search"></small>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.compose.from.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END FROM -->\n\n							<!-- MAIL TO -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.compose.to.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">To:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select tagging tagging-label multiple data-ng-model="form.sto" theme="bootstrap" name="to">\n												<ui-select-match placeholder="To...">{{$item}}</ui-select-match>\n												<ui-select-choices repeat="to in form.to | filter:$select.search">\n													{{to}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.compose.to.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END TO -->\n\n							<!-- START CC -->\n							<div class="form-group">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">Cc:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select tagging tagging-label="" multiple data-ng-model="form.scc" theme="bootstrap" name="cc" ng-disabled="disabled">\n												<ui-select-match placeholder="Cc...">{{$item}}</ui-select-match>\n												<ui-select-choices repeat="cc in form.cc">\n													{{cc}}\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END CC -->\n\n							<!-- START SUBJECT -->\n							<div data-ng-hide="mailRoom" class="form-group" data-ng-class="{\'has-error\': forms.compose.subject.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">Subject:</label>\n										</div>\n										<div class="col-md-11">\n											<input type="text" name="subject" class="form-control todo-taskbody-taskdesc" placeholder="Subject..." rows="8" data-ng-model="form.subject">\n											<span data-ng-show="forms.compose.subject.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END SUJBECT -->\n\n							<!-- START HTML -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.compose.text.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html" name="html"></div>\n									<!-- <textarea class="form-control todo-taskbody-taskdesc" rows="8" data-ng-model="form.text" name="text" style="resize: none;"></textarea> -->\n										<span data-ng-show="forms.compose.text.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n								</div>\n							</div>\n							<!-- END HTML -->\n\n							<!-- START ATTACH -->\n							<div class="form-group">\n								<div class="col-md-6">\n									<input type="file" nv-file-select uploader="uploader" name="file">\n									<table class="table" border="0">\n										<tbody>\n										<tr data-ng-repeat="item in uploader.queue">\n												<td style="border-top-style:none">\n													<strong>\n														{{ item.file.name }}\n													</strong>\n												</td>\n												<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n													{{ item.file.size/1024/1024|number:2 }} MB\n												</td>\n												<td nowrap style="border-top-style:none">\n													<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n															<span class="glyphicon glyphicon-trash"></span> Remove\n													</button>\n												</td>\n											</tr>\n										</tbody>\n									</table>\n								</div>\n								<div class="col-md-6">\n									<div class="form-actions right todo-form-actions">\n										<button class="btn btn-circle btn-sm green-haze">{{ \'APPLICATION_SEND\' | translate }}</button>\n										<input type="button" name="cancel" value="{{ \'APPLICATION_CANCEL\' | translate }}" class="btn btn-circle btn-sm btn-default" data-ng-click="cancel()">\n									</div>\n								</div>\n							</div>\n							<!-- END ATTACH -->\n						</div>\n					</form>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n<!-- END TODO CONTENT -->\n'),a.put("app/mail/queue/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="/square/projects">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-layers"></i>\n						<a href="#">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-layers font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="mailQueues.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/mail/queues/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getMailQueues([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Name\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="mail_queues.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedMailQueues" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.queuesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="queueByPage in queuesByPage | filter: $select.search">\n													<div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(queue, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate }}</th>\n								<th st-sort="timeout">{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}</th>\n						    <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="queue in displayedMailQueues">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mailQueues.checked" checklist-value="queue.id"></td>\n					      <td>{{queue.name}}</td>\n								<td>{{queue.description}}</td>\n								<td>{{queue.strategy | uppercase}}</td>\n								<td>{{queue.timeout}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/mail/queues/view/{{queue.id}}/settings">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(queue.name, queue.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedMailQueues.length">\n								<td colspan="6" class="text-center">\n									<i>No available queues</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="67" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.queuesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="note note-warning" data-ng-hide="teams.length">\n					<h4 class="block">Warning!</h4>\n					<p>\n						 {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n					</p>\n				</div>\n				<div  style="width: 50%; margin: 0 auto;">\n					<div class="col-md-9" id="multi-select-team" data-ng-show="teams.length"></div>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-layers"></i>\n					<a href="/mail/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					<i data-ng-show="queue" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="queue">\n					<a href="#">{{queue.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{queue.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.mail.queues.view.settings\')}">\n							<a data-ng-href="/mail/queues/view/{{queue.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.mail.queues.view.agents\')}">\n							<a data-ng-href="/mail/queues/view/{{queue.id}}/agents">\n							<i class="icon-users"></i>\n							{{ \'APPLICATION_AGENTS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/queue/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.general" data-ng-submit="forms.general.$valid && updateMailQueue()" novalidate>\n					<!-- START NAME -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n						<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n						<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n						<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END NAME -->\n\n					<!-- START DESCRIPTION -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n						<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n					</div>\n					<!-- END DESCRIPTION -->\n\n					<!-- START TIMEOUT -->\n					<div class="form-group">\n						<label class="control-label">Agent Timeout</label>\n						<input type="number" name="timeout" placeholder="Timeout" class="form-control" min="1" data-ng-model="queue.timeout"/>\n					</div>\n					<!-- END TIMEOUT -->\n\n					<!-- START HEADER SHAPE -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n						<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n						<ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n							<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n							<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n								<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n					</div>\n					<!-- END HEADER SHAPE -->\n					<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n				</form>\n			</div>\n		</div>\n	</div>\n</div>\n'),
-a.put("app/mail/queue/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-envelope"></i>\n				<a href="#">{{ \'APPLICATION_MAILS\' | translate }}</a>\n        <i class="fa fa-angle-right"></i>\n			</li>\n      <li>\n				<i class="icon-layers"></i>\n				<a href="/mail/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-layers font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n					<form name="forms.general" data-ng-submit="forms.general.$valid && createItem()" novalidate>\n						<!-- START NAME -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n							<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n						</div>\n						<!-- END DESCRIPTION -->\n\n						<!-- START TIMEOUT -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n							<label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="number" min="0" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n							<span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid && forms.general.timeout.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END TIMEOUT -->\n\n						<!-- START STRATEGY -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n							<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n								<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n									<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid && forms.general.strategy.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END STRATEGY -->\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CREATE\' | translate}}"/>\n					</form>\n			  </wz-step>\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{ \'APPLICATION_CONFIRM\' | translate }}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/mail/realtime/view/agent/agent.queues.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<div id="grid1" ui-grid="gridOptions" ui-grid-tree-view class="grid"></div>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/realtime/view/agent/agent.timeline.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedAgents" st-safe-src="agents" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="12">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n											<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="subject" class="input-small">{{ \'APPLICATION_SUBJECT\' | translate }}</th>\n						<th st-sort="from" class="input-small">{{ \'APPLICATION_FROM\' | translate }}</th>\n						<th st-sort="accountname" class="input-small">{{ \'APPLICATION_TO\' | translate }}</th>\n						<th st-sort="agentcalledAt" st-sort-default="reverse">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n						<th st-sort="agentconnectAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n						<th st-sort="agentringnoanswerAt">{{ \'APPLICATION_UNASWER_AT\' | translate }}</th>\n						<th st-sort="reason">{{ \'APPLICATION_REASON\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="agent in displayedAgents">\n						<td>\n							<span>\n								<i data-ng-class="{\'icon-user font-yellow\': agent.lastevent === \'called\',\n								\'icon-user-following font-green\': agent.lastevent === \'agent\',\n								\'icon-user-unfollow font-red\': agent.lastevent === \'timeout\',\n								\'icon-user-unfollow font-blue\': agent.lastevent === \'answered_elsewhere\'}"></i>\n							</span>\n						</td>\n						<td>{{agent.uniqueid}}</td>\n						<td>{{agent.mailqueuename}}</td>\n						<td>{{agent.fullname}}</td>\n						<td>{{agent.subject}}</td>\n						<td>{{agent.from}}</td>\n						<td>{{agent.accountname}}</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentcalledAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentconnectedAt}}" data-ng-show="agent.agentconnectedAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentringnoanswerAt}}" data-ng-show="agent.agentringnoanswerAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							{{agent.reason | uppercase}}\n						</td>\n			    </tr>\n					<tr data-ng-hide="displayedAgents.length">\n						<td colspan="11" style="text-align:center;">\n							<i>No agents available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_SUBJECT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n						</td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FROM\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="accountname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_TO\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="7"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="12" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/realtime/view/session/session.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initMails()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedMails" st-safe-src="sessions" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="12">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.sessionsByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="sessionByPage in sessionsByPage | filter: $select.search">\n											<div ng-bind-html="sessionByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="subject" class="input-small">{{ \'APPLICATION_SUBJECT\' | translate }}</th>\n						<th st-sort="from" class="input-small">{{ \'APPLICATION_FROM\' | translate }}</th>\n						<th st-sort="accountname" class="input-small">{{ \'APPLICATION_TO\' | translate }}</th>\n						<th st-sort="sessioncalledAt" st-sort-default="reverse">{{ \'APPLICATION_JOIN_AT\' | translate }}</th>\n						<th st-sort="sessionconnectAt">{{ \'APPLICATION_LEAVE_AT\' | translate }}</th>\n						<th st-sort="sessionringnoanswerAt">{{ \'APPLICATION_UNMANAGED_AT\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="session in displayedMails">\n						<td>\n							<span>\n								<i data-ng-class="{\'icon-user font-yellow\': session.mailjoinAt && !session.mailleaveAt,\n								\'icon-user-following font-green\': session.fullname,\n								\'icon-user-unfollow font-red\': session.mailunmanagedAt}"></i>\n							</span>\n						</td>\n						<td>{{session.uniqueid}}</td>\n						<td>{{session.mailqueuename}}</td>\n						<td>{{session.fullname}}</td>\n						<td>{{session.subject}}</td>\n						<td>{{session.from}}</td>\n						<td>{{session.accountname}}</td>\n						<td>\n							<time is="relative-time" datetime="{{session.mailjoinAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{session.mailleaveAt}}" data-ng-show="session.mailleaveAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{session.mailunmanagedAt}}" data-ng-show="session.mailunmanagedAt">\n								April 1, 2014\n							</time>\n						</td>\n			    </tr>\n					<tr data-ng-hide="displayedMails.length">\n						<td colspan="11" style="text-align:center;">\n							<i>No sessions available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_SUBJECT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n						</td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FROM\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="accountname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_TO\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="7"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="12" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.sessionsByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-energy"></i>\n					<a href="/mail/realtime/list">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<div>\n		    <nav class="navbar navbar-default" role="navigation">\n		        <div class="navbar-header">\n		            <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n		                <span class="sr-only">Toggle navigation</span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		            </button>\n		            <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n		        </div>\n\n		        <!-- Collect the nav links, forms, and other content for toggling -->\n		        <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n		            <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_AGENTS\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'agents\'></tree>\n		                </li>\n										<li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_SESSIONS\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'sessions\'></tree>\n		                </li>\n		            </ul>\n		            <!-- <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_QUEUES\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'queues\'></tree>\n		                </li>\n		            </ul> -->\n		        </div>\n		        <!-- /.navbar-collapse -->\n		    </nav>\n		</div>\n		<div ui-view></div>\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/statistics/statistics.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="/agent">{{ \'APPLICATION_MAILS\' | translate }}</a>\n				</li>\n				<li>\n					<a href="#">{{agent.fullname}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img ng-src="assets/images/media/statistics.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{agent.fullname}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{agent.role}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.mail.statistics.summary\')}">\n							<a data-ng-href="/mail/statistics/summary">\n							<i class="icon-bar-chart"></i>\n							{{ \'APPLICATION_SUMMARY\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/statistics/statistics.summary.html",'<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CONVERSATIONS\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row">\n					<div class="col-md-6">\n						<div class="portlet sale-summary">\n							<div class="portlet-body">\n								<ul class="list-unstyled">\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_INBOX\' | translate }} <i class="fa fa-img-up"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ directory:\'INBOX\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_SENT\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ directory:\'SENT\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_OUTGOING\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ directory:\'NOT SENT\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_DRAFT\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ directory:\'DRAFT\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_TRASH\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ directory:\'TRASH\' }).length }} </span>\n									</li>\n								</ul>\n							</div>\n						</div>\n					</div>\n					<div class="col-md-6">\n						<canvas class="chart chart-pie" data="[\n						(mailMessages | filter:{ directory:\'INBOX\' }).length,\n						(mailMessages | filter:{ directory:\'SENT\' }).length,\n						(mailMessages | filter:{ directory:\'NOT SENT\' }).length,\n						(mailMessages | filter:{ directory:\'DRAFT\' }).length,\n						(mailMessages | filter:{ directory:\'TRASH\' }).length]" labels="[\n						$translate.instant(\'APPLICATION_INBOX\'),\n						$translate.instant(\'APPLICATION_SENT\'),\n						$translate.instant(\'APPLICATION_OUTGOING\'),\n						$translate.instant(\'APPLICATION_DRAFT\'),\n						$translate.instant(\'APPLICATION_TRASH\')]" legend="true"></canvas>\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END PORTLET-->\n\n		<!-- BEGIN PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-pencil font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_OTHER_INFO\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row">\n					<div class="col-md-6">\n						<div class="portlet sale-summary">\n							<div class="portlet-body">\n								<ul class="list-unstyled">\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_READ\' | translate }} <i class="fa fa-img-up"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ read:\'true\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_UNREAD\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ read:\'false\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_FAVORITE\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ favorite:\'true\' }).length }} </span>\n									</li>\n								</ul>\n							</div>\n						</div>\n					</div>\n					<div class="col-md-6">\n						<canvas class="chart chart-pie" data="[\n						(mailMessages | filter:{ read:\'true\' }).length,\n						(mailMessages | filter:{ read:\'false\' }).length]" labels="[\n						$translate.instant(\'APPLICATION_READ\'),\n						$translate.instant(\'APPLICATION_UNREAD\')]" legend="true"></canvas>\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END PORTLET-->\n	</div>\n</div>\n'),a.put("app/mail/template/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="/square/projects">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-docs"></i>\n						<a href="#">{{ \'APPLICATION_TEMPLATES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TEMPLATES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="mailTemplates.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_TEMPLATE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/mail/templates/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getMailTemplates([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Name\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="mail_templates.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedMailTemplates" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.templatesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="queueByPage in templatesByPage | filter: $select.search">\n													<div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(template, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<!-- <th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate }}</th>\n								<th st-sort="timeout">{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}</th> -->\n						    <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="template in displayedMailTemplates">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mailTemplates.checked" checklist-value="template.id"></td>\n					      <td>{{template.name}}</td>\n								<td>{{template.description}}</td>\n								<!-- <td>{{template.strategy | uppercase}}</td>\n								<td>{{template.timeout}}</td> -->\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/mail/templates/view/{{template.id}}/settings">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(template.name, template.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedMailTemplates.length">\n								<td colspan="6" class="text-center">\n									<i>No available templates</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<!-- <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td/> -->\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="67" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.templatesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/mail/template/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="note note-warning" data-ng-hide="teams.length">\n					<h4 class="block">Warning!</h4>\n					<p>\n						 {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n					</p>\n				</div>\n				<div  style="width: 50%; margin: 0 auto;">\n					<div class="col-md-9" id="multi-select-team" data-ng-show="teams.length"></div>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/template/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initItem()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/mail/templates/list">{{ \'APPLICATION_TEMPLATES\' | translate }}</a>\n					<i data-ng-show="item" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="item">\n					<a href="#">{{item.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/template.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{item.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.mail.templates.view.settings\')}">\n							<a data-ng-href="/mail/templates/view/{{item.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/template/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.template" data-ng-submit="forms.template.$valid && updateItem()" class="form-horizontal" novalidate>\n					<!-- START NAME -->\n					<div class="form-group" data-ng-class="{\'has-error\': forms.template.name.$invalid && forms.template.$submitted}">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">{{\'APPLICATION_NAME\' | translate}}:<span class="required" aria-required="true">*</span></label>\n								</div>\n								<div class="col-md-11">\n									<input type="text" name="name" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_NAME\' | translate}}..." rows="8" data-ng-model="item.name">\n									<span data-ng-show="forms.template.name.$invalid && forms.template.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END NAME -->\n\n					<!-- START DESCRIPTION -->\n					<div class="form-group" data-ng-class="{\'has-error\': forms.template.description.$invalid && forms.template.$submitted}">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}:</label>\n								</div>\n								<div class="col-md-11">\n									<input type="text" name="name" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}..." rows="8" data-ng-model="item.description">\n									<span data-ng-show="forms.template.name.$invalid && forms.template.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END NAME -->\n\n					<!-- START FROM -->\n					<div class="form-group" data-ng-class="{\'has-error\': forms.template.from.$invalid && forms.template.$submitted}">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">From:<span class="required" aria-required="true">*</span></label>\n								</div>\n								<div class="col-md-11">\n									<ui-select data-ng-model="item.from" theme="bootstrap" name="from" required ng-disabled="disabled">\n										<ui-select-match placeholder="From...">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="{address: mailAccount.MailServerOut.username, name: mailAccount.name, id: mailAccount.id} as mailAccount in mailAccounts | filter: $select.search">\n											<div data-ng-bind-html="mailAccount.name | highlight: $select.search"></div>\n											<small data-ng-bind-html="mailAccount.MailServerOut.username | highlight: $select.search"></small>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="forms.template.from.$invalid && forms.template.$submitted" class="help-block help-block-error">\n					          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n					        </span>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END FROM -->\n\n					<!-- FAX TO -->\n					<div class="form-group" data-ng-class="{\'has-error\': forms.template.to.$invalid && forms.template.$submitted}">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">To:<span class="required" aria-required="true">*</span></label>\n								</div>\n								<div class="col-md-11">\n									<ui-select tagging tagging-label="" multiple required data-ng-model="item.sto" theme="bootstrap" name="to" ng-disabled="disabled">\n										<ui-select-match placeholder="To...">{{$item}}</ui-select-match>\n										<ui-select-choices repeat="to in item.to | filter:$select.search">\n											{{to}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="forms.template.to.$invalid && forms.template.$submitted" class="help-block help-block-error">\n					          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n					        </span>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END TO -->\n\n					<!-- START CC -->\n					<div class="form-group">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">Cc:</label>\n								</div>\n								<div class="col-md-11">\n									<ui-select tagging tagging-label="" multiple data-ng-model="item.scc" theme="bootstrap" name="cc" ng-disabled="disabled">\n										<ui-select-match placeholder="Cc...">{{$item}}</ui-select-match>\n										<ui-select-choices repeat="cc in item.cc">\n											{{cc}}\n										</ui-select-choices>\n									</ui-select>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END CC -->\n\n					<!-- START SUBJECT -->\n					<div class="form-group" data-ng-class="{\'has-error\': forms.template.subject.$invalid && forms.template.$submitted}">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">{{\'APPLICATION_SUBJECT\' | translate}}:<span class="required" aria-required="true">*</span></label>\n								</div>\n								<div class="col-md-11">\n									<input type="text" name="subject" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_SUBJECT\' | translate}}..." rows="8" data-ng-model="item.subject">\n									<span data-ng-show="forms.template.subject.$invalid && forms.template.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END SUJBECT -->\n\n					<!-- START HTML -->\n					<div class="form-group" data-ng-class="{\'has-error\': forms.template.text.$invalid && forms.template.$submitted}">\n						<div class="col-md-12">\n							<div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="item.html" name="html"></div>\n							<!-- <textarea class="form-control todo-taskbody-taskdesc" rows="8" data-ng-model="form.text" name="text" style="resize: none;"></textarea> -->\n								<span data-ng-show="forms.template.text.$invalid && forms.template.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n						</div>\n					</div>\n					<!-- END HTML -->\n\n					<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n				</form>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/template/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-envelope"></i>\n				<a href="#">{{ \'APPLICATION_MAILS\' | translate }}</a>\n        <i class="fa fa-angle-right"></i>\n			</li>\n      <li>\n				<i class="icon-docs"></i>\n				<a href="/mail/templates/list">{{ \'APPLICATION_TEMPLATES\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-docs font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_TEMPLATES\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n					<form name="forms.template" data-ng-submit="forms.template.$valid && saveTemplate()" class="form-horizontal" novalidate>\n						<!-- START HEAD -->\n						<div class="form">\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.template.name.$invalid && forms.template.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">{{\'APPLICATION_NAME\' | translate}}:<span class="required" aria-required="true">*</span></label>\n										</div>\n										<div class="col-md-11">\n											<input type="text" name="name" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_NAME\' | translate}}..." rows="8" data-ng-model="form.name">\n											<span data-ng-show="forms.template.name.$invalid && forms.template.$submitted" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.template.description.$invalid && forms.template.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}:</label>\n										</div>\n										<div class="col-md-11">\n											<input type="text" name="name" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}..." rows="8" data-ng-model="form.description">\n											<span data-ng-show="forms.template.name.$invalid && forms.template.$submitted" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START FROM -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.template.from.$invalid && forms.template.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">From:<span class="required" aria-required="true">*</span></label>\n										</div>\n										<div class="col-md-11">\n											<ui-select data-ng-model="form.from" theme="bootstrap" name="from" required ng-disabled="disabled">\n												<ui-select-match placeholder="From...">{{$select.selected.name}}</ui-select-match>\n												<!-- <ui-select-match placeholder="From...">{{$select.selected.name}} - {{$select.selected.address}}</ui-select-match> -->\n												<ui-select-choices repeat="{address: mailAccount.MailServerOut.username, name: mailAccount.name, id: mailAccount.id} as mailAccount in mailAccounts | filter: $select.search">\n													<div data-ng-bind-html="mailAccount.name | highlight: $select.search"></div>\n													<small data-ng-bind-html="mailAccount.MailServerOut.username | highlight: $select.search"></small>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.template.from.$invalid && forms.template.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END FROM -->\n\n							<!-- FAX TO -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.template.to.$invalid && forms.template.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">To:<span class="required" aria-required="true">*</span></label>\n										</div>\n										<div class="col-md-11">\n											<ui-select tagging tagging-label="" multiple required data-ng-model="form.sto" theme="bootstrap" name="to" ng-disabled="disabled">\n												<ui-select-match placeholder="To...">{{$item}}</ui-select-match>\n												<ui-select-choices repeat="to in form.to | filter:$select.search">\n													{{to}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.template.to.$invalid && forms.template.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END TO -->\n\n							<!-- START CC -->\n							<div class="form-group">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">Cc:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select tagging tagging-label="" multiple data-ng-model="form.scc" theme="bootstrap" name="cc" ng-disabled="disabled">\n												<ui-select-match placeholder="Cc...">{{$item}}</ui-select-match>\n												<ui-select-choices repeat="cc in form.cc">\n													{{cc}}\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END CC -->\n\n							<!-- START SUBJECT -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.template.subject.$invalid && forms.template.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">{{\'APPLICATION_SUBJECT\' | translate}}:<span class="required" aria-required="true">*</span></label>\n										</div>\n										<div class="col-md-11">\n											<input type="text" name="subject" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_SUBJECT\' | translate}}..." rows="8" data-ng-model="form.subject">\n											<span data-ng-show="forms.template.subject.$invalid && forms.template.$submitted" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END SUJBECT -->\n\n							<!-- START HTML -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.template.text.$invalid && forms.template.$submitted}">\n								<div class="col-md-12">\n									<div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html" name="html"></div>\n									<!-- <textarea class="form-control todo-taskbody-taskdesc" rows="8" data-ng-model="form.text" name="text" style="resize: none;"></textarea> -->\n										<span data-ng-show="forms.template.text.$invalid && forms.template.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n								</div>\n							</div>\n							<!-- END HTML -->\n\n							<!-- START ATTACH -->\n							<!-- <div class="form-group">\n								<div class="col-md-6">\n									<input type="file" nv-file-select uploader="uploader" name="file">\n									<table class="table" border="0">\n										<tbody>\n										<tr data-ng-repeat="item in uploader.queue">\n												<td style="border-top-style:none">\n													<strong>\n														{{ item.file.name }}\n													</strong>\n												</td>\n												<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n													{{ item.file.size/1024/1024|number:2 }} MB\n												</td>\n												<td nowrap style="border-top-style:none">\n													<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n															<span class="glyphicon glyphicon-trash"></span> Remove\n													</button>\n												</td>\n											</tr>\n										</tbody>\n									</table>\n								</div>\n								<div class="col-md-6">\n									<div class="form-actions right todo-form-actions">\n										<button class="btn btn-circle btn-sm green-haze">{{ \'APPLICATION_SEND\' | translate }}</button>\n										<input type="button" name="cancel" value="{{ \'APPLICATION_CANCEL\' | translate }}" class="btn btn-circle btn-sm btn-default" data-ng-click="cancel()">\n									</div>\n								</div>\n							</div> -->\n							<!-- END ATTACH -->\n						</div>\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n					</form>\n			  </wz-step>\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{ \'APPLICATION_CONFIRM\' | translate }}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/mail/timeline/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-list"></i>\n						<a href="/mail/timeline/list"> Timeline</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n	<div class="col-md-12">\n    <h3 class="page-title">\n				Timeline\n			</h3>\n			<!-- END PAGE HEADER-->\n			<!-- BEGIN PAGE CONTENT-->\n			<div class="timeline">\n				<!-- TIMELINE ITEM -->\n				<div class="timeline-item" data-ng-repeat="event in events | orderBy:\'-id\'">\n					<div class="timeline-badge">\n						<div class="timeline-icon">\n							<i class="icon-envelope font-green-haze"></i>\n						</div>\n					</div>\n					<div class="timeline-body">\n						<div class="timeline-body-arrow"></div>\n						<div class="timeline-body-head">\n							<div class="timeline-body-head-caption">\n								<span class="timeline-body-alerttitle" data-ng-class="{\'font-red\': event.name == \'INCOMING\', \'font-blue\': event.name == \'ATTEMPT\', \'font-green\': event.name == \'TAKEN\'}">{{event.name | uppercase}}</span>\n								<span class="timeline-body-time font-grey-cascade">at {{event.createdAt | date:\'yyyy-MM-dd HH:mm:ss\'}}</span>\n							</div>\n							<div class="timeline-body-head-actions">\n								<div class="btn-group">\n									<a class="btn btn-circle btn-sm dropdown-toggle btn-success" href="/mail/inbox/room/{{event.MailRoomId}}">Go To Mail</a>\n								</div>\n							</div>\n						</div>\n						<div class="timeline-body-content">\n							<span class="font-grey-cascade" data-ng-show="event.User">\n							{{event.MailRoom.subject ? event.MailRoom.subject + \' - \' : \'\'}}<a href="/agents/view/{{event.UserId}}/account">{{event.User.fullname}}</a>\n							</span>\n						</div>\n					</div>\n				</div>\n				<!-- END TIMELINE ITEM -->\n			</div>\n			<!-- END PAGE CONTENT-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/main/chooseContact.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_CHOOSE_CONTACT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.choose" novalidate>\n    <div class="form-group" data-ng-class="{\'has-error\': forms.choose.contactId.$invalid && forms.choose.$submitted}">\n      <label class="control-label">{{\'APPLICATION_CONTACT\' | translate}}</label>\n      <ui-select data-ng-model="item.contactId" theme="bootstrap" name="contactId" ng-disabled="disabled">\n        <ui-select-match allow-clear placeholder="{{ \'APPLICATION_CONTACT\' | translate }}">{{$select.selected.name}}</ui-select-match>\n        <ui-select-choices repeat="contact.id as contact in contacts | filter: $select.search">\n          <div ng-bind-html="contact.name | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="forms.choose.CompanyId.$invalid && forms.choose.$submitted" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.tag.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/main/main.html",'<!-- BEGIN HEADER -->\n<div data-ng-include="\'components/header/header.html\'" data-ng-controller="HeaderController" class="page-header navbar navbar-fixed-top">\n</div>\n<!-- END HEADER -->\n\n<div class="clearfix">\n</div>\n<!-- BEGIN CONTAINER -->\n<div class="page-container" data-ng-init="initMain()">\n\n  <!-- BEGIN SIDEBAR -->\n  <div data-ng-include="\'components/sidebar/sidebar.html\'" data-ng-controller="SidebarController" class="page-sidebar-wrapper">\n  </div>\n  <!-- END SIDEBAR -->\n\n  <!-- BEGIN CONTENT -->\n  <div class="page-content-wrapper">\n    <div class="page-content">\n\n      <!-- BEGIN PAGE CONTENT -->\n      <!-- <toaster-container></toaster-container> -->\n      <uib-tabset>\n        <uib-tab select="addWorkspace()" active="mainTab.active">\n          <uib-tab-heading>\n            Motion <i class="icon-rocket"></i>\n          </uib-tab-heading>\n          <div ui-view class=""></div>\n        </uib-tab>\n        <uib-tab data-ng-repeat="workspace in workspaces" active="workspace.active" data-ng-switch="workspace.type">\n          <uib-tab-heading>\n            {{workspace.name}} <i class="icon-close pointer-cursor" data-ng-click="closeTab($index)"></i>\n          </uib-tab-heading>\n          <div class="" data-ng-switch="workspace.type">\n            <new-contact data-ng-switch-when="newContact" workspace="workspace" index="$index" on-submit="createContact(index,item)"></new-contact>\n            <contact data-ng-switch-when="contact" workspace="workspace" index="$index" on-submit="updateContact(index,item)"></contact>\n          </div>\n        </uib-tab>\n        <!-- <uib-tab select="addWorkspace()">\n          <uib-tab-heading>\n            <i class="icon-plus"></i>\n          </uib-tab-heading>\n        </uib-tab> -->\n      </uib-tabset>\n      <!-- END PAGE CONTENT  -->\n\n    </div>\n  </div>\n  <!-- END CONTENT -->\n\n  <!-- BEGIN QUICK SIDEBAR -->\n  <a href="javascript:;" class="page-quick-sidebar-toggler"><i class="icon-close"></i></a>\n  <div data-ng-include="\'components/quickSidebar/quickSidebar.html\'" data-ng-controller="QuickSidebarController" class="page-quick-sidebar-wrapper">\n  </div>\n  <!-- END QUICK SIDEBAR -->\n\n</div>\n<!-- END CONTAINER -->\n\n<!-- BEGIN FOOTER -->\n<div data-ng-include="\'components/footer/footer.html\'" data-ng-controller="FooterController" class="page-footer">\n</div>\n<!-- END FOOTER -->\n\n<!-- BEGIN JAVASCRIPTS(Load javascripts at bottom, this will reduce page load time) -->\n<!-- BEGIN CORE PLUGINS -->\n<!--[if lt IE 9]>\n<script src="../../assets/global/plugins/respond.min.js"></script>\n<script src="../../assets/global/plugins/excanvas.min.js"></script>\n<![endif]-->\n\n<!-- END JAVASCRIPTS -->\n'),a.put("app/main/template.contactTab.html",'<div class="row margin-top-20 contact-tab-container" >\n  <!-- <pre>\n    {{workspaces}}\n  </pre> -->\n  <!-- <pre>\n    {{contact | json}}\n  </pre> -->\n  <div class="col-md-12 contact-tab">\n    <form name="forms.general" data-ng-submit="submit({index:index,item:contact})" novalidate>\n    <!-- BEGIN PROFILE SIDEBAR -->\n    <div class="profile-sidebar">\n      <!-- PORTLET MAIN -->\n      <div class="portlet light pbottom20">\n        <!-- SIDEBAR USERPIC -->\n        <div class="profile-userpic">\n          <img src="assets/images/media/contact.png" class="img-responsive" alt="">\n        </div>\n        <!-- END SIDEBAR USERPIC -->\n        <!-- SIDEBAR USER TITLE -->\n        <div class="profile-usertitle">\n          <div class="profile-usertitle-name">\n            {{contact.fullname}}\n          </div>\n          <div class="profile-usertitle-job">\n          </div>\n        </div>\n        <!-- END SIDEBAR USER TITLE -->\n        <!-- SIDEBAR BUTTONS -->\n        <div class="profile-userbuttons">\n          <button type="submit" class="btn btn-circle green-haze btn-sm" data-ng-disabled="!contact.fullname">{{\'APPLICATION_UPDATE\' | translate}}</button>\n          <!-- <button type="button" class="btn btn-circle btn-danger btn-sm">Message</button> -->\n        </div>\n        <!-- END SIDEBAR BUTTONS -->\n        <!-- SIDEBAR MENU -->\n        <!-- <div class="profile-usermenu">\n          <ul class="nav">\n            <li class="active">\n              <a href="extra_profile.html">\n              <i class="icon-home"></i>\n              Overview </a>\n            </li>\n            <li>\n              <a href="extra_profile_account.html">\n              <i class="icon-settings"></i>\n              Account Settings </a>\n            </li>\n            <li>\n              <a href="page_todo.html" target="_blank">\n              <i class="icon-check"></i>\n              Tasks </a>\n            </li>\n            <li>\n              <a href="extra_profile_help.html">\n              <i class="icon-info"></i>\n              Help </a>\n            </li>\n          </ul>\n        </div> -->\n        <!-- END MENU -->\n      </div>\n      <!-- END PORTLET MAIN -->\n      <!-- PORTLET MAIN -->\n      <div class="portlet light">\n        <!-- STAT -->\n        <div class="row list-separated profile-stat">\n          <div class="col-md-4 col-sm-4 col-xs-6">\n            <div class="uppercase profile-stat-title">\n               37\n            </div>\n            <div class="uppercase profile-stat-text">\n               Projects\n            </div>\n          </div>\n          <div class="col-md-4 col-sm-4 col-xs-6">\n            <div class="uppercase profile-stat-title">\n               51\n            </div>\n            <div class="uppercase profile-stat-text">\n               Tasks\n            </div>\n          </div>\n          <div class="col-md-4 col-sm-4 col-xs-6">\n            <div class="uppercase profile-stat-title">\n               61\n            </div>\n            <div class="uppercase profile-stat-text">\n               Uploads\n            </div>\n          </div>\n        </div>\n        <!-- END STAT -->\n        <div>\n          <h4 class="profile-desc-title">{{\'APPLICATION_ABOUT\' | translate}} {{contact.fullname}}</h4>\n          <span class="profile-desc-text break-overflow">{{contact.description}}</span>\n          <div class="margin-top-20 profile-desc-link">\n            <i class="fa fa-globe"></i>\n            <a href="http://www.keenthemes.com">www.keenthemes.com</a>\n          </div>\n          <div class="margin-top-20 profile-desc-link">\n            <i class="fa fa-twitter"></i>\n            <a href="http://www.twitter.com/keenthemes/">@keenthemes</a>\n          </div>\n          <div class="margin-top-20 profile-desc-link">\n            <i class="fa fa-facebook"></i>\n            <a href="http://www.facebook.com/keenthemes/">keenthemes</a>\n          </div>\n        </div>\n      </div>\n      <!-- END PORTLET MAIN -->\n    </div>\n    <!-- END BEGIN PROFILE SIDEBAR -->\n    <!-- BEGIN PROFILE CONTENT -->\n    <div class="profile-content">\n      <div class="row">\n        <div class="col-md-6">\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light ">\n            <div class="portlet-title">\n              <div class="caption caption-md">\n                <i class="icon-bar-chart theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_DETAIL\' | translate}}</span>\n              </div>\n              <div class="actions">\n                <div class="btn-group btn-group-devided" data-toggle="buttons">\n                  <label class="btn btn-transparent grey-salsa btn-circle btn-sm active" data-ng-click="detail.tab=\'main\'">\n                  <input type="radio" class="toggle">{{\'APPLICATION_MAIN\' | translate}}</label>\n                  <label class="btn btn-transparent grey-salsa btn-circle btn-sm" data-ng-click="detail.tab=\'address\'">\n                  <input type="radio" class="toggle">{{\'APPLICATION_ADDRESS\' | translate}}</label>\n                  <label class="btn btn-transparent grey-salsa btn-circle btn-sm"data-ng-click="detail.tab=\'other\'">\n                  <input type="radio" class="toggle">{{\'APPLICATION_OTHER\' | translate}}</label>\n                </div>\n              </div>\n            </div>\n            <div class="portlet-body">\n              <div data-ng-class="{\'hidden\':detail.tab != \'main\'}" class="portlet-body contact-portlet">\n              <!-- START FULLNAME -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.fullname.$touched || forms.general.$submitted) && forms.general.fullname.$invalid}">\n                <label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="contact.fullname" required/>\n                <span data-ng-show="(forms.general.fullname.$touched || forms.general.$submitted) && forms.general.fullname.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END FULLNAME -->\n\n              <!-- START COMPANY -->\n              <div class="form-group" data-ng-class="{\'has-error\': forms.general.CompanyId.$invalid && forms.general.$submitted}">\n                <label class="control-label">{{\'APPLICATION_COMPANY\' | translate}}</label>\n                <ui-select data-ng-model="contact.CompanyId" theme="bootstrap" name="CompanyId" ng-disabled="disabled">\n                  <ui-select-match allow-clear placeholder="{{ \'APPLICATION_COMPANY\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                  <ui-select-choices repeat="company.id as company in companies | filter: $select.search">\n                    <div ng-bind-html="company.name | highlight: $select.search"></div>\n                  </ui-select-choices>\n                </ui-select>\n                <span data-ng-show="forms.general.CompanyId.$invalid && forms.general.$submitted" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END COMPANY -->\n\n              <!-- START TAGS -->\n              <div class="form-group" data-ng-class="{\'has-error\': forms.general.tags.$invalid && forms.general.$submitted}">\n                <label class="control-label">{{\'APPLICATION_TAGS\' | translate}}</label>\n                <ui-select tagging tagging-label="" multiple=\'true\' data-ng-model="contact.tags" theme="bootstrap" name="tags" ng-disabled="disabled">\n                  <ui-select-match placeholder="{{ \'APPLICATION_TAGS\' | translate }}">{{$item}}</ui-select-match>\n                  <ui-select-choices repeat="tag in tags | filter: $select.search">\n                    {{tag}}\n                  </ui-select-choices>\n                </ui-select>\n                <span data-ng-show="forms.general.tags.$invalid && forms.general.$submitted" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END TAGS -->\n\n            </div>\n            <div data-ng-class="{\'hidden\':detail.tab != \'address\'}" class="portlet-body contact-portlet">\n              <!-- START STREET -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$invalid}">\n                <label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n                <input type="text" name="street" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="contact.street"/>\n                <span data-ng-show="(forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END STREET -->\n\n              <!-- START POSTALCODE -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$invalid}">\n                <label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n                <input type="text" name="postalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="contact.postalCode"/>\n                <span data-ng-show="(forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END POSTALCODE -->\n\n              <!-- START CITY -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$invalid}">\n                <label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n                <input type="text" name="city" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="contact.city"/>\n                <span data-ng-show="(forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END CITY -->\n\n              <!-- START COUNTRY -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$invalid}">\n                <label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n                <input type="text" name="country" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="contact.country"/>\n                <span data-ng-show="(forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END COUNTRY -->\n            </div>\n            <div data-ng-class="{\'hidden\':detail.tab != \'other\'}" class="portlet-body contact-portlet">\n              <!-- START DATEOFBIRTH -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.dateOfBirth.$touched || forms.general.$submitted) && forms.general.dateOfBirth.$invalid}">\n                <label class="control-label">{{\'APPLICATION_DATEOFBIRTH\' | translate}}</label>\n                <input name="dateOfBirth" type="date" placeholder="{{\'APPLICATION_DATEOFBIRTH\' | translate}}" class="form-control date-picker" data-ng-model="contact.dateOfBirth"/>\n                <span data-ng-show="(forms.general.dateOfBirth.$touched || forms.general.$submitted) && forms.general.dateOfBirth.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END DATEOFBIRTH -->\n\n              <!-- START DESCRIPTION -->\n              <div class="form-group">\n                <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                <textarea style="resize: vertical;" type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="contact.description"></textarea>\n              </div>\n              <!-- END DESCRIPTION -->\n              <!-- START CREATED_BY -->\n              <div class="form-group">\n                <label class="control-label">{{\'APPLICATION_CREATED_BY\' | translate}}</label>\n                <input type="text" name="createdBy" placeholder="{{\'APPLICATION_CREATED_BY\' | translate}}" class="form-control" data-ng-model="contact.User.name" disabled/>\n              </div>\n              <!-- END CREATED_BY -->\n            </div>\n            </div>\n          </div>\n          <!-- END PORTLET -->\n        </div>\n        <div class="col-md-6">\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light">\n            <div class="portlet-title tabbable-line">\n              <div class="caption caption-md">\n                <i class="icon-globe theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONTACTS\' | translate}}</span>\n              </div>\n              <ul class="nav nav-tabs">\n                <li class="active">\n                  <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_PHONES\' | translate}}</a>\n                </li>\n                <li>\n                  <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_EMAILS\' | translate}}</a>\n                </li>\n              </ul>\n            </div>\n            <div class="portlet-body">\n              <!--BEGIN TABS-->\n              <div class="tab-content">\n                <div class="tab-pane active" id="tab_1_1">\n                  <div class="contact-portlet">\n                    <!-- START PHONES -->\n                    <div class="padding-bottom mbottom20">\n                    <div data-ng-if="contact.Phones.length>0">\n                      <label class="control-label">{{\'APPLICATION_PHONES\' | translate}}</label>\n                    </div>\n                    <div class="padding-bottom" ng-repeat="phone in contact.Phones">\n                      <div class="form-group">\n                        <div class="input-group">\n                          <input type="text" class="form-control" ng-model="phone.phone" required>\n                          <span class="input-group-btn">\n                          <button class="btn red" type="button"data-ng-click="removeField(\'Phones\',$index)"><i class="fa fa-times"></i></button>\n                          </span>\n                        </div>\n                      </div>\n                    </div>\n                    <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField(\'Phones\')">\n                      <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_PHONE\' | translate}}\n                    </button>\n                  </div>\n                  <!-- END PHONES -->\n                </div>\n              </div>\n                <div class="tab-pane" id="tab_1_2">\n                  <div class="contact-portlet">\n                    <!-- START EMAILS -->\n                      <div class="padding-bottom mbottom20">\n                      <div data-ng-if="contact.Emails.length>0">\n                        <label class="control-label">{{\'APPLICATION_EMAILS\' | translate}}</label>\n                      </div>\n                      <div class="padding-bottom" ng-repeat="email in contact.Emails">\n                        <div class="form-group">\n                          <div class="input-group">\n                            <input type="email" class="form-control" ng-model="email.email" required>\n                            <span class="input-group-btn">\n                            <button class="btn btn-danger" type="button" data-ng-click="removeField(\'Emails\',$index)"><i class="fa fa-times"></i></button>\n                            </span>\n                          </div>\n                        </div>\n                      </div>\n                      <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField(\'Emails\')">\n                        <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_EMAIL\' | translate}}\n                      </button>\n                    </div>\n                    <!-- END EMAILS -->\n                  </div>\n                </div>\n              </div>\n              <!--END TABS-->\n            </div>\n          </div>\n          <!-- END PORTLET -->\n        </div>\n      </div>\n      <div class="row">\n        <div class="col-md-6">\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light">\n            <div class="portlet-title tabbable-line">\n              <div class="caption caption-md">\n                <i class="icon-globe theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_LOG\' | translate}}</span>\n              </div>\n              <ul class="nav nav-tabs">\n                <li class="active">\n                  <a href="#" data-target="#tab_2_1" data-toggle="tab">{{ \'APPLICATION_JOURNAL\' | translate}}</a>\n                </li>\n                <li>\n                  <a href="#" data-target="#tab_2_2" data-toggle="tab">{{ \'APPLICATION_HISTORY\' | translate}}</a>\n                </li>\n              </ul>\n            </div>\n            <div class="portlet-body">\n              <!--BEGIN TABS-->\n              <div class="tab-content">\n                <div class="tab-pane active" id="tab_2_1">\n                  <div class="contact-portlet">\n\n                  </div>\n              </div>\n                <div class="tab-pane" id="tab_2_2">\n                  <div class="contact-portlet">\n\n                  </div>\n                </div>\n              </div>\n              <!--END TABS-->\n            </div>\n          </div>\n          <!-- END PORTLET -->\n        </div>\n        <div class="col-md-6">\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light tasks-widget">\n            <div class="portlet-title">\n              <div class="caption caption-md">\n                <i class="icon-bar-chart theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">Tasks</span>\n                <span class="caption-helper">16 pending</span>\n              </div>\n              <div class="inputs">\n                <div class="portlet-input input-small input-inline">\n                  <div class="input-icon right">\n                    <i class="icon-magnifier"></i>\n                    <input type="text" class="form-control form-control-solid" placeholder="search...">\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div class="portlet-body">\n              <div class="task-content">\n                <div class="contact-portlet">\n                  <!-- START TASK LIST -->\n                  <ul class="task-list">\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="hidden" value="1" name="test"/>\n                        <input type="checkbox" class="liChild" value="2" name="test"/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Present 2013 Year IPO Statistics at Board Meeting </span>\n                        <span class="label label-sm label-success">Company</span>\n                        <span class="task-bell">\n                        <i class="fa fa-bell-o"></i>\n                        </span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Hold An Interview for Marketing Manager Position </span>\n                        <span class="label label-sm label-danger">Marketing</span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        AirAsia Intranet System Project Internal Meeting </span>\n                        <span class="label label-sm label-success">AirAsia</span>\n                        <span class="task-bell">\n                        <i class="fa fa-bell-o"></i>\n                        </span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Technical Management Meeting </span>\n                        <span class="label label-sm label-warning">Company</span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Kick-off Company CRM Mobile App Development </span>\n                        <span class="label label-sm label-info">Internal Products</span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Prepare Commercial Offer For SmartVision Website Rewamp </span>\n                        <span class="label label-sm label-danger">SmartVision</span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Sign-Off The Comercial Agreement With AutoSmart </span>\n                        <span class="label label-sm label-default">AutoSmart</span>\n                        <span class="task-bell">\n                        <i class="fa fa-bell-o"></i>\n                        </span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li>\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        Company Staff Meeting </span>\n                        <span class="label label-sm label-success">Cruise</span>\n                        <span class="task-bell">\n                        <i class="fa fa-bell-o"></i>\n                        </span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                    <li class="last-line">\n                      <div class="task-checkbox">\n                        <input type="checkbox" class="liChild" value=""/>\n                      </div>\n                      <div class="task-title">\n                        <span class="task-title-sp">\n                        KeenThemes Investment Discussion </span>\n                        <span class="label label-sm label-warning">KeenThemes </span>\n                      </div>\n                      <div class="task-config">\n                        <div class="task-config-btn btn-group">\n                          <a class="btn btn-xs default" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                          <i class="fa fa-cog"></i><i class="fa fa-angle-down"></i>\n                          </a>\n                          <ul class="dropdown-menu pull-right">\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-check"></i> Complete </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-pencil"></i> Edit </a>\n                            </li>\n                            <li>\n                              <a href="#">\n                              <i class="fa fa-trash-o"></i> Cancel </a>\n                            </li>\n                          </ul>\n                        </div>\n                      </div>\n                    </li>\n                  </ul>\n                  <!-- END START TASK LIST -->\n                </div>\n              </div>\n            </div>\n          </div>\n          <!-- END PORTLET -->\n        </div>\n      </div>\n    </div>\n    <!-- END PROFILE CONTENT -->\n  </form>\n  </div>\n</div>\n'),
-a.put("app/main/template.newContactTab.html",'<div class="portlet light bordered">\n  <div class="portlet-title">\n    <div class="caption font-green-sharp">\n      <i class="icon-envelope-letter font-green-sharp"></i>\n      <span class="caption-subject">{{ \'APPLICATION_NEW_CONTACT\' | translate }}</a> </span>\n    </div>\n  </div>\n  <div class="portlet-body">\n    <!-- <pre>\n      {{forms.general | json}}\n    </pre> -->\n    <!-- <pre>\n      {{item | json}}\n    </pre>\n    <pre>\n      {{index}}\n    </pre> -->\n        <form name="forms.general" data-ng-submit="submit({index: index,item: item})" novalidate>\n          <!-- <pre>\n            {{checkboxes | json}}\n          </pre>\n          <pre>\n            {{item | json}}\n          </pre> -->\n          <!-- BEGIN PORTLET -->\n          <div class="portlet light">\n            <div class="portlet-title">\n              <div class="caption caption-md">\n                <i class="icon-bar-chart theme-font hide"></i>\n                <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_DETAILS\' | translate}}</span>\n              </div>\n              <div class="inputs">\n                <div class="portlet-input input-inline input-small ">\n                </div>\n              </div>\n            </div>\n            <div class="portlet-body">\n          <div class="row">\n            <div class="col-md-6">\n          <!-- START FULLNAME -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.fullname.$touched || forms.general.$submitted) && forms.general.fullname.$invalid}">\n            <label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="item.fullname" data-ng-disabled="checkboxes.fullname ? !checkboxes.fullname : true" required/>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.fullname">\n              </span>\n            </div> -->\n            <input data-ng-if="!joinPrompt" type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n            <span data-ng-show="(forms.general.fullname.$touched || forms.general.$submitted) && forms.general.fullname.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END FULLNAME -->\n\n          <!-- START COMPANY -->\n          <div class="form-group" data-ng-class="{\'has-error\': forms.general.CompanyId.$invalid && forms.general.$submitted}">\n            <label class="control-label">{{\'APPLICATION_COMPANY\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <ui-select data-ng-model="item.CompanyId" theme="bootstrap" name="CompanyId" data-ng-disabled="checkboxes.CompanyId ? !checkboxes.CompanyId : true">\n                <ui-select-match allow-clear placeholder="{{ \'APPLICATION_COMPANY\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                <ui-select-choices repeat="company.id as company in companies | filter: $select.search">\n                  <div ng-bind-html="company.name | highlight: $select.search"></div>\n                </ui-select-choices>\n              </ui-select>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.CompanyId">\n              </span>\n            </div> -->\n            <ui-select data-ng-if="!joinPrompt" data-ng-model="item.CompanyId" theme="bootstrap" name="CompanyId" data-ng-disabled="disabled">\n              <ui-select-match allow-clear placeholder="{{ \'APPLICATION_COMPANY\' | translate }}">{{$select.selected.name}}</ui-select-match>\n              <ui-select-choices repeat="company.id as company in companies | filter: $select.search">\n                <div ng-bind-html="company.name | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n            <span data-ng-show="forms.general.CompanyId.$invalid && forms.general.$submitted" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END COMPANY -->\n\n          <!-- START STREET -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$invalid}">\n            <label class="control-label">{{\'APPLICATION_STREET\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <input type="text" name="street" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="item.street" data-ng-disabled="checkboxes.street ? !checkboxes.street : true"/>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.street">\n              </span>\n            </div> -->\n            <input data-ng-if="!joinPrompt" type="text" name="street" placeholder="{{\'APPLICATION_STREET\' | translate}}" class="form-control" data-ng-model="item.street"/>\n            <span data-ng-show="(forms.general.street.$touched || forms.general.$submitted) && forms.general.street.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END STREET -->\n\n          <!-- START POSTALCODE -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$invalid}">\n            <label class="control-label">{{\'APPLICATION_POSTALCODE\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <input type="text" name="postalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="item.postalCode" data-ng-disabled="checkboxes.postalCode ? !checkboxes.postalCode : true"/>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.postalCode">\n              </span>\n            </div> -->\n            <input data-ng-if="!joinPrompt" type="text" name="postalCode" placeholder="{{\'APPLICATION_POSTALCODE\' | translate}}" class="form-control" data-ng-model="item.postalCode"/>\n            <span data-ng-show="(forms.general.postalCode.$touched || forms.general.$submitted) && forms.general.postalCode.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END POSTALCODE -->\n\n          <!-- START CITY -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$invalid}">\n            <label class="control-label">{{\'APPLICATION_CITY\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <input type="text" name="city" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="item.city" data-ng-disabled="checkboxes.city ? !checkboxes.city : true"/>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.city">\n              </span>\n            </div> -->\n            <input data-ng-if="!joinPrompt" type="text" name="city" placeholder="{{\'APPLICATION_CITY\' | translate}}" class="form-control" data-ng-model="item.city"/>\n            <span data-ng-show="(forms.general.city.$touched || forms.general.$submitted) && forms.general.city.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END CITY -->\n        </div>\n        <div class="col-md-6">\n          <!-- START COUNTRY -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$invalid}">\n            <label class="control-label">{{\'APPLICATION_COUNTRY\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <input type="text" name="country" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="item.country" data-ng-disabled="checkboxes.country ? !checkboxes.country : true"/>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.country">\n              </span>\n            </div> -->\n            <input data-ng-if="!joinPrompt" type="text" name="country" placeholder="{{\'APPLICATION_COUNTRY\' | translate}}" class="form-control" data-ng-model="item.country"/>\n            <span data-ng-show="(forms.general.country.$touched || forms.general.$submitted) && forms.general.country.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END COUNTRY -->\n\n          <!-- START DATEOFBIRTH -->\n          <div class="form-group" data-ng-class="{\'has-error\': (forms.general.dateOfBirth.$touched || forms.general.$submitted) && forms.general.dateOfBirth.$invalid}">\n            <label class="control-label">{{\'APPLICATION_DATEOFBIRTH\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <input type="date" name="dateOfBirth" placeholder="{{\'APPLICATION_DATEOFBIRTH\' | translate}}" class="form-control" data-ng-model="item.dateOfBirth" data-ng-disabled="checkboxes.dateOfBirth ? !checkboxes.dateOfBirth : true"/>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.dateOfBirth">\n              </span>\n            </div> -->\n            <input data-ng-if="!joinPrompt" type="date" name="dateOfBirth" placeholder="{{\'APPLICATION_DATEOFBIRTH\' | translate}}" class="form-control" data-ng-model="item.dateOfBirth"/>\n            <span data-ng-show="(forms.general.dateOfBirth.$touched || forms.general.$submitted) && forms.general.dateOfBirth.$error.required" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END DATEOFBIRTH -->\n\n          <!-- START TAGS -->\n          <div class="form-group" data-ng-class="{\'has-error\': forms.general.tags.$invalid && forms.general.$submitted}">\n            <label class="control-label">{{\'APPLICATION_TAGS\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <ui-select tagging tagging-label="" multiple=\'true\' data-ng-model="item.tags" theme="bootstrap" name="tags" data-ng-readonly="checkboxes.tags ? !checkboxes.tags : true">\n                <ui-select-match placeholder="{{ \'APPLICATION_TAGS\' | translate }}">{{$item}}</ui-select-match>\n                <ui-select-choices repeat="tag in tags | filter: $select.search">\n                  {{tag}}\n                </ui-select-choices>\n              </ui-select>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.tags">\n              </span>\n            </div> -->\n            <ui-select data-ng-if="!joinPrompt" tagging tagging-label="" multiple=\'true\' data-ng-model="item.tags" theme="bootstrap" name="tags" ng-disabled="disabled">\n              <ui-select-match placeholder="{{ \'APPLICATION_TAGS\' | translate }}">{{$item}}</ui-select-match>\n              <ui-select-choices repeat="tag in tags | filter: $select.search">\n                {{tag}}\n              </ui-select-choices>\n            </ui-select>\n            <span data-ng-show="forms.general.tags.$invalid && forms.general.$submitted" class="help-block help-block-error">\n              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n            </span>\n          </div>\n          <!-- END TAGS -->\n\n          <!-- START DESCRIPTION -->\n          <div class="form-group">\n            <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n            <!-- <div class="input-group" data-ng-if="joinPrompt">\n              <textarea style="resize: vertical;" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description" data-ng-disabled="checkboxes.description ? !checkboxes.description : true"></textarea>\n              <span class="input-group-addon">\n              <input type="checkbox" data-ng-model="checkboxes.description">\n              </span>\n            </div> -->\n            <textarea data-ng-if="!joinPrompt" style="resize: vertical;" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n          </div>\n          <!-- END DESCRIPTION -->\n        </div>\n      </div>\n    </div>\n  </div>\n  <!-- END PORTLET -->\n  <div class="row">\n    <div class="col-md-6">\n  <!-- START PORTLET -->\n  <div class="portlet light">\n    <div class="portlet-title">\n      <div class="caption caption-md">\n        <i class="icon-bar-chart theme-font hide"></i>\n        <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_PHONES\' | translate}}</span>\n      </div>\n      <div class="inputs">\n        <div class="portlet-input input-inline input-small ">\n        </div>\n      </div>\n    </div>\n    <div class="portlet-body">\n          <!-- START PHONES -->\n          <div class="">\n          <div data-ng-if="item.Phones.length>0">\n            <!-- <label class="control-label">{{\'APPLICATION_PHONES\' | translate}}</label> -->\n          </div>\n          <div class="padding-bottom" ng-repeat="phone in item.Phones">\n            <div class="form-group">\n              <div class="input-group">\n                <input type="text" class="form-control" ng-model="phone.phone" required>\n                <span class="input-group-btn">\n                <button class="btn red" type="button"data-ng-click="removeField(\'Phones\',$index)"><i class="fa fa-times"></i></button>\n                </span>\n              </div>\n            </div>\n          </div>\n          <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField(\'Phones\')">\n            <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_PHONE\' | translate}}\n          </button>\n        </div>\n        <!-- END PHONES -->\n      </div>\n    </div>\n    <!-- END PORTLET -->\n  </div>\n  <div class="col-md-6">\n    <!-- START PORTLET -->\n    <div class="portlet light">\n      <div class="portlet-title">\n        <div class="caption caption-md">\n          <i class="icon-bar-chart theme-font hide"></i>\n          <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_EMAILS\' | translate}}</span>\n        </div>\n        <div class="inputs">\n          <div class="portlet-input input-inline input-small ">\n          </div>\n        </div>\n      </div>\n      <div class="portlet-body">\n        <!-- START EMAILS -->\n          <div class="">\n          <div data-ng-if="item.Emails.length>0">\n            <!-- <label class="control-label">{{\'APPLICATION_EMAILS\' | translate}}</label> -->\n          </div>\n          <div class="padding-bottom" ng-repeat="email in item.Emails">\n            <div class="form-group">\n              <div class="input-group">\n                <input type="email" class="form-control" ng-model="email.email" required>\n                <span class="input-group-btn">\n                <button class="btn btn-danger" type="button" data-ng-click="removeField(\'Emails\',$index)"><i class="fa fa-times"></i></button>\n                </span>\n              </div>\n            </div>\n          </div>\n          <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField(\'Emails\')">\n            <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_EMAIL\' | translate}}\n          </button>\n        </div>\n        <!-- END EMAILS -->\n      </div>\n    </div>\n    <!-- END PORTLET -->\n  </div>\n</div>\n    <!-- START PORTLET -->\n    <div class="portlet light">\n      <div class="portlet-title">\n        <div class="caption caption-md">\n          <i class="icon-bar-chart theme-font hide"></i>\n          <!-- <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_PHONES\' | translate}}</span> -->\n        </div>\n        <div class="inputs">\n          <div class="portlet-input input-inline input-small ">\n          </div>\n        </div>\n      </div>\n      <div class="portlet-body">\n          <div class="mbottom20">\n          <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONFIRM\' | translate}}" data-ng-disabled="!item.fullname"/>\n        </div>\n        <!-- <div data-ng-if="joinPrompt">\n          <p>{{\'APPLICATION_OR\' | translate}}</p>\n          <input class="btn green-haze mbottom20" type="button" value="{{\'APPLICATION_JOIN_WITH\' | translate}}" data-ng-disabled="!item.id" data-ng-click="joinContact(index)"/>\n\n          <div class="form-group" data-ng-class="{\'has-error\': forms.general.id.$invalid && forms.general.$submitted}">\n            <ui-select  data-ng-model="item.id" theme="bootstrap" name="id" data-ng-disabled="disabled">\n              <ui-select-match placeholder="{{ \'APPLICATION_EXISTING_CONTACT\' | translate }}">{{$select.selected.fullname}}</ui-select-match>\n              <ui-select-choices repeat="contact.id as contact in contacts | filter: $select.search">\n                <div ng-bind-html="contact.fullname | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n            <span data-ng-show="forms.general.id.$invalid && forms.general.$submitted" class="help-block help-block-error">\n'+"              <strong>{{'APPLICATION_WARNING' | translate}}!</strong> {{'MESSAGE_REQUIRED_FIELD' | translate}}.\n            </span>\n          </div>\n\n        </div> -->\n      </div>\n    </div>\n    <!-- END PORTLET -->\n\n        </form>\n  </div>\n</div>\n"),a.put("app/main/template.queryBuilderView.html",'\n		<div class="alert alert-warning alert-group">\n				<div class="row">\n						<ui-select data-ng-model="group.boolean" theme="bootstrap" class="col-md-2" data-ng-if="group.type == \'CONDITION\'">\n							<ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n							<ui-select-choices repeat="bool.name as bool in booleans| filter: $select.search">\n								<div ng-bind-html="bool.name | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n						<button ng-click="addCondition(group.type)" class="btn btn-success col-md-2 left-margin" ><span class="glyphicon glyphicon-plus-sign" ></span> {{\'APPLICATION_ADD_\'+group.type | translate}}</button>\n						<button ng-click="addGroup(group.type)" data-ng-if="group.type == \'CONDITION\' && group.main" class="btn btn-success col-md-2 left-margin" ><span class="glyphicon glyphicon-plus-sign" ></span> {{\'APPLICATION_ADD_GROUP\' | translate}}</button>\n						<button ng-click="removeGroup()" data-ng-if="group.type == \'CONDITION\' && !group.main" class="btn btn-danger col-md-2 left-margin" ><span class="glyphicon glyphicon-minus-sign"></span> {{\'APPLICATION_REMOVE_GROUP\' | translate}}</button>\n				</div>\n				<div class="group-conditions">\n					<!-- <pre>\n						{{group | json}}\n					</pre> -->\n						<div ng-repeat="rule in group.rules | orderBy:\'index\'" class="condition">\n								<div ng-switch="rule.hasOwnProperty(\'group\')">\n										<div ng-switch-when="true">\n												<query-builder group="rule.group" fields="fields" operators="operators" properties="properties"></query-builder>\n										</div>\n										<div ng-switch-default="ng-switch-default">\n												<div class="row">\n\n															<ui-select data-ng-model="rule.field" theme="bootstrap" class="col-md-2">\n																<ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n																<ui-select-choices repeat="field in fields | filter: $select.search">\n																	<div ng-bind-html="field.name | translate | highlight: $select.search"></div>\n																</ui-select-choices>\n															</ui-select>\n\n															<ui-select data-ng-model="rule.operator" theme="bootstrap" class="col-md-2 left-margin" data-ng-if="group.type == \'CONDITION\' && rule.field">\n																<ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n																<ui-select-choices repeat="operator.value as operator in operators[rule.field.operators]| filter: $select.search">\n																	<div ng-bind-html="operator.name | translate | highlight: $select.search"></div>\n																</ui-select-choices>\n															</ui-select>\n\n															<div class="col-md-2 left-margin" ng-if="rule.field && rule.field.propertyField==\'input\'">\n																<input type="text" ng-model="rule.data" class="form-control"/>\n															</div>\n															<div class="col-md-2 left-margin" ng-if="rule.field && rule.field.propertyField==\'number\'">\n																<input type="number" ng-model="rule.data" class="form-control"/>\n															</div>\n															<ui-select ng-if="rule.field && rule.field.propertyField==\'select\'" data-ng-model="rule.data" class="col-md-2 left-margin" theme="bootstrap">\n																<ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n																<ui-select-choices repeat="property.value as property in properties[rule.field.value]| filter: $select.search">\n																	<div ng-bind-html="property.name | translate | highlight: $select.search"></div>\n																</ui-select-choices>\n															</ui-select>\n\n															<div class="col-md-2 left-margin" ng-if="rule.field && rule.field.subField && rule.field.subField.propertyField==\'input\'">\n																<input type="text" ng-model="rule.data2" class="form-control"/>\n															</div>\n															<div class="col-md-2 left-margin" ng-if="rule.field && rule.field.subField && rule.field.subField.propertyField==\'number\'">\n																<input type="number" ng-model="rule.data2" class="form-control"/>\n															</div>\n															<ui-select ng-if="rule.field && rule.field.subField && rule.field.subField.propertyField==\'select\'" data-ng-model="rule.data2" class="col-md-2 left-margin" theme="bootstrap">\n																<ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n																<ui-select-choices repeat="property.value as property in properties[rule.field.subField.value]| filter: $select.search">\n																	<div ng-bind-html="property.name | translate | highlight: $select.search"></div>\n																</ui-select-choices>\n															</ui-select>\n\n															<button ng-click="removeCondition($index)" class="btn btn-danger remove-condition col-md-1 left-margin"><span class="glyphicon glyphicon-minus-sign"></span></button>\n												</div>\n										</div>\n								</div>\n						</div>\n				</div>\n		</div>\n'),a.put("app/market/market.html",'<div class="row" data-ng-init="getProject()">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-handbag"></i>\n						<a href="/market">Market Place</a>\n          </li>\n        </ul>\n			</div>\n		</div>\n</div>\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n    <!-- Our Integration -->\n    <div class="headline">\n      <h3>Our Integrations</h3>\n    </div>\n    <div class="row thumbnails">\n      <div class="col-md-3">\n        <div class="our-integrations">\n          <h3> Zendesk <small> Xenialab s.r.l</small></h3>\n          <img src="https://d3kjp0zrek7zit.cloudfront.net/uploads/product/image/574/large_detail_1406764757.png" alt="Zendesk" class="img-responsive"/>\n          <div class="integration-info">\n            <p>\n               Allows your customer care to manage professional Asterisk call center solutions...\n            </p>\n            <div class="pull-right">\n                <a href="#" class="btn btn-xs green-meadow">\n									Install 1.0.0 <i class="fa fa-download"></i>\n                </a>\n                <a href="#" class="btn btn-xs grey-cascade">\n									More <i class="fa fa-link"></i>\n                </a>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class="col-md-3">\n        <div class="our-integrations">\n          <h3> SalesForce <small> Xenialab s.r.l</small></h3>\n          <img src="http://501partners.com/wp-content/uploads/SF-300x300.png" alt="Salesforce" class="img-responsive"/>\n          <div class="integration-info">\n            <p>\n               xCALLY provides a new seamless CTI integration with Salesforce, CRM leader solution....\n            </p>\n            <div class="pull-right">\n                <a href="#" class="btn btn-xs green-meadow">\n									Install 1.0.1 <i class="fa fa-download"></i>\n                </a>\n                <a href="#" class="btn btn-xs grey-cascade">\n									More <i class="fa fa-link"></i>\n                </a>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class="col-md-3">\n        <div class="our-integrations">\n          <h3> Desk.com <small> Xenialab s.r.l</small></h3>\n          <img src="http://a470.phobos.apple.com/us/r1000/088/Purple/v4/d5/5a/f3/d55af305-cbb5-fc52-dd09-5b69f979b551/mzl.fiyydcmj.png" alt="desk.com" class="img-responsive"/>\n          <div class="integration-info">\n            <p>\n               The new xCALLY – Desk Integration ensures a proper Case will be displayed on the....\n            </p>\n            <div class="pull-right">\n                <a href="#" class="btn btn-xs green-meadow">\n									Install 1.1.4 <i class="fa fa-download"></i>\n                </a>\n                <a href="#" class="btn btn-xs grey-cascade">\n									More <i class="fa fa-link"></i>\n                </a>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <!--/thumbnails-->\n    <!-- //End Meer Our Team -->\n  </div>\n</div>\n'),a.put("app/motionbar/motionbar.chat.html",'<div data-ng-include="\'components/quickSidebar/quickSidebar.html\'" data-ng-controller="QuickSidebarController" class="page-quick-sidebar-wrapper" style="margin-top: -92px;"></div>\n'),a.put("app/salesforce/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-handbag"></i>\n					<a href="/salesforce/list">{{ \'APPLICATION_SALESFORCE\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-handbag font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_SALESFORCE\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="accounts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle" href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/salesforce/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'password\',\'clientId\',\'clientSecret\',\'securityToken\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Password\', \'Client Id\', \'Client Secret\', \'Security token\']" field-separator=";" filename="salesforce_accounts.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedSalesforceAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n													<div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n								<th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n								<th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="account in displayedSalesforceAccounts" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n					      <td>{{account.name}}</td>\n					      <td>{{account.username}}</td>\n								<td>{{account.remoteUri}}</td>\n								<td>{{account.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/salesforce/view/{{account.id}}/account">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n									<a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n										{{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedSalesforceAccounts.length">\n								<td colspan="7" style="text-align:center;">\n									<i>No account available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="7" class="text-center">\n									<div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n					</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/salesforce/view/view.account.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n								<span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n								<span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n								<span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n              <!-- START CLIENT ID -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.clientId.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CLIENT_ID\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="clientId" placeholder="{{\'APPLICATION_CLIENT_ID\' | translate}}" class="form-control" data-ng-model="account.clientId" required/>\n								<span data-ng-show="forms.formSetting.clientId.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CLIENT ID -->\n\n              <!-- START CLIENT SECRET -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.clientSecret.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CLIENT_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="clientSecret" placeholder="{{\'APPLICATION_CLIENT_SECRET\' | translate}}" class="form-control" data-ng-model="account.clientSecret" required/>\n								<span data-ng-show="forms.formSetting.clientSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CLIENT SECRET -->\n\n              <!-- START SECURITY TOKEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.securityToken.$invalid}">\n								<label class="control-label">{{\'APPLICATION_SECURITY_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="securityToken" placeholder="{{\'APPLICATION_SECURITY_TOKEN\' | translate}}" class="form-control" data-ng-model="account.securityToken" required/>\n								<span data-ng-show="forms.formSetting.securityToken.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END SECURITY TOKEN -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/salesforce/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createConfiguration()">\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n							<form name="formsConfiguration.info" novalidate>\n								<!-- START NAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n									<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n									<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n									<span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END NAME -->\n								<!-- START DESCRIPTION -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n									<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n								</div>\n								<!-- END DESCRIPTION -->\n\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/salesforce/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n					</li>\n          <li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n					</li>\n          <li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- SUBJECT TAB -->\n					<div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n	            <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n	              <div class="col-md-3">\n	                <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n	                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n	                <div class="form-group">\n	                  <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n	                </div>\n	              </div>\n	              <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n	                <div class="form-group">\n	                  <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n					<div class="tab-pane ui-padding" id="tab_1_2">\n						<div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n							<div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n								<!-- <pre>\n									{{descriptionItem|json}}\n								</pre> -->\n	              <div class="col-md-2">\n	                <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n	                  <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n	                <div class="form-group">\n	                  <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n	                </div>\n	              </div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n									<input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n								</div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n									<ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n	                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n								</div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n									<input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n								</div>\n	              <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n	                <div class="form-group">\n	                  <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n					<div class="tab-pane ui-padding" id="tab_1_3">\n						<div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n	            <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n	              <div class="col-md-3">\n	                <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n	                  <ui-select-choices repeat="item.name as item in accountFields | filter: $select.search">\n	                    <div ng-bind-html="item.label | highlight: $select.search"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n	                <div class="form-group">\n										<ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n		                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.label}}</ui-select-match>\n		                  <ui-select-choices repeat="item.value as item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n		                    <div ng-bind-html="item.value | highlight: $select.search"></div>\n		                  </ui-select-choices>\n		                </ui-select>\n	                </div>\n	              </div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n									<div class="form-group">\n										<ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n		                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n		                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n		                    <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n		                  </ui-select-choices>\n		                </ui-select>\n									</div>\n								</div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n	                <div class="form-group">\n										<input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n	                </div>\n	              </div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n	                <div class="form-group">\n										<ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END FIELDS TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/salesforce/view/view.configurations.html",'<div ui-view class="profile-content">\n	<div class="row" data-ng-init="getConfigurations()">\n		<div class="col-md-12">\n			<div class="portlet light">\n				<div class="portlet-title  tabbable-line">\n					<div class="caption caption-md">\n						<i class="icon-globe theme-font hide"></i>\n						<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n					</div>\n					<div class="actions">\n						<div class="btn-group">\n							<a class="btn green-jungle " href="/salesforce/view/{{account.id}}/configuration" data-toggle="dropdown">\n								<i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n							</a>\n						</div>\n					</div>\n				</div>\n				<div class="portlet-body">\n					<!-- START TABLE -->\n					<table class="table table-striped table-bordered table-hover">\n						  <thead>\n							  <tr>\n							    <th>{{\'APPLICATION_NAME\' | translate}}</th>\n									<th>{{\'APPLICATION_DESCRIPTION\' | translate}}</th>\n									<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n							  </tr>\n						  </thead>\n							<tbody>\n						    <tr data-ng-repeat="configuration in configurations">\n									<td>{{configuration.name}}</td>\n									<td>{{configuration.description}}</td>\n						      <td>\n										<a class="btn default btn-xs blue-stripe" data-ng-href="/salesforce/view/{{account.id}}/configurations/settings/{{configuration.id}}">\n											{{ \'APPLICATION_SETTINGS\' | translate}}\n						        </a>\n						        <a class="btn default btn-xs red-stripe" data-ng-click="deleteConfiguration(configuration.name,configuration.id)">\n											{{ \'APPLICATION_DELETE\' | translate }}\n						        </a>\n						      </td>\n						    </tr>\n								<tr data-ng-hide="configurations.length">\n									<td colspan="5" style="text-align:center;">\n										<i>No configuration available</i>\n									</td>\n								</tr>\n						  </tbody>\n					</table>\n					<!-- END TABLE -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/salesforce/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n          <i class="icon-handbag"></i>\n          <a href="/salesforce/list">{{ \'APPLICATION_SALESFORCE\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{account.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img src="assets/images/media/salesforce.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{account.name}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{account.remoteUri}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.salesforce.view.account\')}">\n							<a ng-href="/salesforce/view/{{account.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.includes(\'main.salesforce.view.configurations\') || $state.is(\'main.salesforce.view.configuration\')}">\n							<a ng-href="/salesforce/view/{{account.id}}/configurations">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/salesforce/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-handbag"></i>\n						<a href="/salesforce/list">{{ \'APPLICATION_SALESFORCE\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n						<form name="forms.formSetting" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.username" required ng-remote-validate="/api/salesforce/accounts/validate/username"/>\n								<span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formSetting.username.$touched || forms.formSetting.$submitted) && forms.formSetting.username.$error.ngRemoteValidate" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n				        </span>\n							</div>\n							<!-- END USERNAME -->\n\n\n              <!-- START REMOTE ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required/>\n								<span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n              <!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n								<span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n              <!-- START CLIENT ID -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.clientId.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CLIENT_ID\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="clientId" placeholder="{{\'APPLICATION_CLIENT_ID\' | translate}}" class="form-control" data-ng-model="item.clientId" required/>\n								<span data-ng-show="forms.formSetting.clientId.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CLIENT ID -->\n\n              <!-- START CLIENT SECRET -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.clientSecret.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CLIENT_SECRET\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="clientSecret" placeholder="{{\'APPLICATION_CLIENT_SECRET\' | translate}}" class="form-control" data-ng-model="item.clientSecret" required/>\n								<span data-ng-show="forms.formSetting.clientSecret.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CLIENT SECRET -->\n\n              <!-- START SECURITY TOKEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.securityToken.$invalid}">\n								<label class="control-label">{{\'APPLICATION_SECURITY_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="securityToken" placeholder="{{\'APPLICATION_SECURITY_TOKEN\' | translate}}" class="form-control" data-ng-model="item.securityToken" required/>\n								<span data-ng-show="forms.formSetting.securityToken.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END SECURITY TOKEN -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n\n				</wizard>\n\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/sound/list/list.html",'<div class="page-bar">\n  <ul class="page-breadcrumb">\n    <li>\n      <i class="icon-rocket"></i>\n      <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n      <i class="fa fa-angle-right"></i>\n    </li>\n    <li>\n      <i class="icon-music-tone-alt"></i>\n      <a href="#">{{ \'APPLICATION_SOUNDS\' | translate }}</a>\n    </li>\n  </ul>\n  <div class="page-toolbar">\n  </div>\n</div>\n<!-- END PAGE HEADER-->\n<!-- BEGIN PAGE CONTENT-->\n<!-- Audio Portlets -->\n<div class="headline">\n  <h3><i class="icon-music-tone-alt sounds-title-icon"></i> {{ \'APPLICATION_SOUNDS\' | translate }}</h3>\n</div>\n<div class="portlet light bg-inverse">\n  <div class="portlet-title collapsible" ng-click="isCollapsed = !isCollapsed">\n    <div class="caption">\n      <i class="icon-puzzle font-red-flamingo"></i>\n      <span class="caption-subject bold font-red-flamingo uppercase">\n      {{\'APPLICATION_FILE_UPLOAD\' | translate}} </span>\n    </div>\n    <div class="tools">\n      <a href="" ng-class="{\'collapse\': !isCollapsed, \'expand\' : isCollapsed}">\n      </a>\n      <a href="" class="fullscreen">\n      </a>\n    </div>\n  </div>\n  <div class="portlet-body" ng-slide-down="!isCollapsed">\n    <div class="row" nv-file-drop="" uploader="uploader" filters="queueLimit, customFilter">\n    	<div class="col-md-4">\n    		<div class="portlet light bordered">\n    			<div class="portlet-title">\n    				<div class="caption font-green-sharp">\n    					<i class="icon-settings font-green-sharp"></i>\n    					<span class="caption-subject bold uppercase">{{\'APPLICATION_SELECT_FILES\' | translate}}</span>\n    					<span class="caption-helper hide"></span>\n    				</div>\n    				<div class="actions">\n    				</div>\n    			</div>\n    			<div class="portlet-body">\n    				<div ng-show="uploader.isHTML5">\n    					<div class="file-drop-zone margin-bottom-20" nv-file-over="" uploader="uploader" over-class="file-drop-zone-over">\n    						Base drop zone\n    					</div>\n    				</div>\n    				<span class="btn default btn-file">\n    				<span class="fileinput-new">\n    				{{\'APPLICATION_FILE_UPLOAD\' | translate}}</span>\n    				<input type="file" nv-file-select="" uploader="uploader" />\n    				</span>\n    				<span class="btn default btn-file">\n    				<span class="fileinput-new">\n    				{{\'APPLICATION_MULTI_FILE_UPLOAD\' | translate}}</span>\n    				<input type="file" nv-file-select="" uploader="uploader" multiple  /><br/>\n          </span>\n          <p>\n            </br>\n            {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} <b>wav, mp3, gsm, ogg</b>.\n          </p>\n          <p>\n            {{ \'MESSAGE_MAXIMUM_SOUND_UPLOAD_SIZE\' | translate }} <b>15 Mb</b>.\n          </p>\n    			</div>\n    		</div>\n    	</div>\n    	<div class="col-md-8">\n    		<div class="portlet light bordered">\n    			<div class="portlet-title">\n    				<div class="caption font-green-sharp">\n    					<i class="icon-settings font-green-sharp"></i>\n    					<span class="caption-subject bold uppercase">{{\'APPLICATION_UPLOAD_QUEUE\' | translate}}</span>\n    					<span class="caption-helper">{{\'APPLICATION_QUEUE_LENGTH\' | translate}}: {{ uploader.queue.length }}</span>\n    				</div>\n    				<div class="actions">\n    				</div>\n    			</div>\n    			<div class="portlet-body">\n    				<div class="table-scrollable table-scrollable-borderless">\n    					<table class="table table-hover table-light">\n    						<thead>\n    							<tr class="uppercase">\n    								<th width="50%">{{\'APPLICATION_NAME\' | translate}}</th>\n    								<th ng-show="uploader.isHTML5">{{\'APPLICATION_SIZE\' | translate}}</th>\n    								<th ng-show="uploader.isHTML5">{{\'APPLICATION_PROGRESS\' | translate}}</th>\n    								<th>{{\'APPLICATION_STATUS\' | translate}}</th>\n    								<th>{{\'APPLICATION_MESSAGE\' | translate}}</th>\n    								<th>{{\'APPLICATION_ACTIONS\' | translate}}</th>\n    							</tr>\n    						</thead>\n    						<tbody>\n    							<tr ng-repeat="item in uploader.queue">\n    								<td><strong>{{ item.file.name }}</strong></td>\n    								<td ng-show="uploader.isHTML5" nowrap>{{ item.file.size/1024/1024|number:2 }} MB</td>\n    								<td ng-show="uploader.isHTML5">\n    									<div class="progress progress-sm" style="margin-bottom: 0;">\n    										<div class="progress-bar progress-bar-info" role="progressbar" ng-style="{ \'width\': item.progress + \'%\' }"></div>\n    									</div>\n    								</td>\n    								<td class="text-center">\n    									<span ng-show="item.isSuccess" class="text-success"><i class="glyphicon glyphicon-ok"></i></span>\n    									<span ng-show="item.isCancel" class="text-info"><i class="glyphicon glyphicon-ban-circle"></i></span>\n    									<span ng-show="item.isError" class="text-danger"><i class="glyphicon glyphicon-remove"></i></span>\n    									<span ng-show="item.isUploading" class="text-info"><i class="glyphicon glyphicon-upload"></i></span>\n    								</td>\n    								<td class="text-center">\n    									<span ng-show="item.responseMessage" class="text-danger">{{item.responseMessage}}</span>\n    								</td>\n    								<td nowrap>\n    									<button type="button" class="btn btn-success btn-xs" ng-click="item.upload()" ng-disabled="item.isReady || item.isUploading || item.isSuccess">\n    									<span class="glyphicon glyphicon-upload"></span> {{\'APPLICATION_UPLOAD\' | translate}}\n    									</button>\n    									<button type="button" class="btn btn-warning btn-xs" ng-click="item.cancel()" ng-disabled="!item.isUploading">\n    									<span class="glyphicon glyphicon-ban-circle"></span> {{\'APPLICATION_CANCEL\' | translate}}\n    									</button>\n    									<button type="button" class="btn btn-danger btn-xs" ng-click="item.remove()">\n    									<span class="glyphicon glyphicon-trash"></span> {{\'APPLICATION_REMOVE\' | translate}}\n    									</button>\n    								</td>\n    							</tr>\n    						</tbody>\n    					</table>\n    				</div>\n    				<div>\n    					<p>{{\'APPLICATION_UPLOAD_QUEUE_PROGRESS\' | translate}}:</p>\n    					<div class="progress progress-sm" style="">\n    						<div class="progress-bar progress-bar-info" role="progressbar" ng-style="{ \'width\': uploader.progress + \'%\' }"></div>\n    					</div>\n    				</div>\n    				<button type="button" class="btn btn-success btn-s" ng-click="uploader.uploadAll()" ng-disabled="!uploader.getNotUploadedItems().length">\n    				<span class="glyphicon glyphicon-upload"></span> {{\'APPLICATION_UPLOAD_ALL\' | translate}}\n    				</button>\n    				<button type="button" class="btn btn-warning btn-s" ng-click="uploader.cancelAll()" ng-disabled="!uploader.isUploading">\n    				<span class="glyphicon glyphicon-ban-circle"></span> {{\'APPLICATION_CANCEL_ALL\' | translate}}\n    				</button>\n    				<button type="button" class="btn btn-danger btn-s" ng-click="uploader.clearQueue()" ng-disabled="!uploader.queue.length">\n    				<span class="glyphicon glyphicon-trash"></span> {{\'APPLICATION_REMOVE_ALL\' | translate}}\n    				</button>\n    			</div>\n    		</div>\n    	</div>\n    </div>\n  </div>\n</div>\n<div class="row thumbnails" data-ng-init="initList()">\n  <div class="row" ng-show="sounds.length == 0">\n    <div class="col-md-12 page-404">\n      <div class="details">\n        <h3>{{ \'MESSAGE_NO_SOUNDS\' | translate }}</h3>\n        <p>\n          <a href="/">\n          {{ \'MESSAGE_RETURN_HOME\' | translate }} </a>\n          {{ \'MESSAGE_OR_UPLOAD_SOUND_FILE\' | translate }}\n        </p>\n      </div>\n    </div>\n  </div>\n  <div class="audio-portlet-wrapper animate-repeat" ng-repeat="sound in sounds">\n    <div class="audio-portlet">\n      <div class="audio-portlet-title"><a href="#" editable-text="sound.display_name" onbeforesave="updateAudio(sound.id,{display_name : $data})">{{ sound.display_name || "Empty" }}</a></div>\n      <img src="../assets/images/note_placeholder.png" alt="" class="img-responsive"/>\n      <div class="file-info">\n        <div class="audio-tag-wrapper">\n          <audio controls ng-src="{{getSecureSrc(audioSources[sound.id])}}" preload="none">\n            {{ \'MESSAGE_AUDIO_NOT_SUPPORTED\' | translate }}\n          </audio>\n        </div>\n        <p id="description_div">\n          <a href="#" editable-text="sound.description" onbeforesave="updateAudio(sound.id,{description : $data})">{{ sound.description || "Empty" }}</a>\n        </p>\n        <p class="float-right">\n            <button class="btn btn-xs green-meadow" tooltip-html-unsafe="<ul class=\'list-unstyled\'><li><b>Format : </b>{{sound.original_format}}</li><li><b>Duration : </b>{{sound.original_duration | date: \'mm:ss\'}}</li><li><b>Channels : </b>{{sound.original_channelCount}}</li><li><b>Bitrate : </b>{{sound.original_bitRate/1024}} kbs</li><li><b>Sample Rate : </b>{{sound.original_sampleRate/1000}} KHz</li></ul>"><i class="icon-list"></i></button>\n            <a class="btn btn-xs blue-hoki" href="{{getSecureDownloadSrc(audioSources[sound.id])}}" download="{{sound.name+\'.\'+sound.original_format}}" target="_self" tooltip="Download"><i class="icon-cloud-download"></i></a>\n            <button class="btn btn-xs red-sunglo" ng-click="delete(sound.display_name, sound.id)" tooltip="Delete"><i class="icon-close" ></i></button>\n        </p>\n      </div>\n    </div>\n  </div>\n</div>\n<!-- End Audio Portlets -->\n'),a.put("app/sound/sound.html","<!-- BEGIN PAGE CONTENT-->\n<div ui-view></div>\n<!-- END PAGE CONTENT-->\n"),a.put("app/square/odbc/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/square/odbcs/list">{{ \'APPLICATION_ODBCS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ODBCS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Odbcs.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ODBC\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/square/odbcs/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getOdbcs([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="square_odbcs.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedOdbcs" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.odbcsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="odbcByPage in odbcsByPage | filter: $select.search">\n													<div ng-bind-html="odbcByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(odbc, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="odbc in displayedOdbcs" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="odbc.defaultEntry" type="checkbox" checklist-model="Odbcs.checked" checklist-value="odbc.id"></td>\n								<td>{{odbc.name}}</td>\n					      <td>{{odbc.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/square/odbcs/view/{{odbc.id}}/settings" data-ng-class="{\'disabled\': odbc.defaultEntry}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(odbc.name,odbc.id)" data-ng-class="{\'disabled\': odbc.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedOdbcs.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_ODBCS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.odbcsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/square/odbc/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getOdbc()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/square/odbcs/list">{{ \'APPLICATION_ODBCS\' | translate }}</a>\n					<i data-ng-show="odbc" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="odbc">\n					<a href="#">{{odbc.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/odbc.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{odbc.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.square.odbcs.view.settings\')}">\n							<a data-ng-href="/square/odbcs/view/{{odbc.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/square/odbc/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_ODBC\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateOdbc()" novalidate>\n\n							<!-- START NAME -->\n				      <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n				        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n				        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="odbc.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n				        </span>\n				      </div>\n				      <!-- END NAME -->\n\n							<!-- START DSN -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DSN\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="dsn" placeholder="{{\'APPLICATION_DSN\' | translate}}" class="form-control" data-ng-model="odbc.dsn" required/>\n								<span data-ng-show="(forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END DSN -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="odbc.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/square/odbc/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-docs"></i>\n				<a href="/square/odbcs/list">{{ \'APPLICATION_ODBCS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/square/odbcs/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-docs font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_ODBC\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.odbc.$valid)">\n			    <form name="forms.odbc" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.odbc.name.$touched || forms.odbc.$submitted) && forms.odbc.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.odbc.name.$touched || forms.odbc.$submitted) && forms.odbc.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n						<!-- START DSN -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_DSN\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="dsn" placeholder="{{\'APPLICATION_DSN\' | translate}}" class="form-control" data-ng-model="item.dsn" required/>\n							<span data-ng-show="(forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END DSN -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n			      <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/square/project/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n        <li>\n          <i class="fa fa-slack"></i>\n          <a href="/square/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n        </li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_PROJECTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Projects.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_PROJECT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/square/projects/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getProjects([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="square_projects.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedProjects" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.projectsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="projectByPage in projectsByPage | filter: $select.search">\n													<div ng-bind-html="projectByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="project in displayedProjects" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="project.defaultEntry" type="checkbox" checklist-model="Projects.checked" checklist-value="project.id"></td>\n								<td>{{project.name}}</td>\n					      <td>{{project.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/square/projects/view/{{project.id}}" data-ng-class="{\'disabled\': project.defaultEntry}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(project.name,project.id)" data-ng-class="{\'disabled\': project.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedProjects.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_PROJECTS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.projectsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/square/project/view/view.html",'<div class="row" data-ng-init="getProject()">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="fa fa-superscript"></i>\n						<a href="/square/projects">{{ \'APPLICATION_CALLYSQUARE\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="fa fa-slack"></i>\n						<a href="/square/projects">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n            <i class="fa fa-angle-right"></i>\n					</li>\n          <li>\n						<a ng-href="/square/projects/view/{{squareProject.id}}">{{squareProject.name}}</a>\n          </li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n		<div id="geEditor" class="geEditor"></div>\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n<script>\n\n\n</script>\n'),a.put("app/square/project/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-docs"></i>\n				<a href="/square/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/square/projects/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-docs font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_PROJECT\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.project.$valid)">\n			    <form name="forms.project" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.project.name.$touched || forms.project.$submitted) && forms.project.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.project.name.$touched || forms.project.$submitted) && forms.project.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n			      <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),
-a.put("app/tag/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_TAG\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.tag" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.tag.name.$touched || forms.tag.$submitted) && forms.tag.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.tag.name.$touched || forms.tag.$submitted) && forms.tag.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.tag.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/tag/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-tag"></i>\n					<a href="/tags/list">{{ \'APPLICATION_TAGS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TAGS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Tags.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<button class="btn green-jungle " ng-click="create()">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_TAG\' | translate }}\n						</button>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getTags([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="tags.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedTags" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.tagsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="tagByPage in tagsByPage | filter: $select.search">\n													<div ng-bind-html="tagByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(tag, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="tag in displayedTags" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="tag.defaultEntry" type="checkbox" checklist-model="Tags.checked" checklist-value="tag.id"></td>\n								<td>{{tag.name}}</td>\n					      <td>{{tag.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/tags/view/{{tag.id}}/settings" data-ng-class="{\'disabled\': tag.defaultEntry}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(tag.name,tag.id)" data-ng-class="{\'disabled\': tag.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedTags.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_TAGS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.tagsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/tag/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getTag()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-tag"></i>\n					<a href="/tags/list">{{ \'APPLICATION_TAGS\' | translate }}</a>\n					<i data-ng-show="tag" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="tag">\n					<a href="#">{{tag.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/tag.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{tag.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.tags.view.settings\')}">\n							<a data-ng-href="/tags/view/{{tag.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/tag/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_TAG\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateTag()" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="tag.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="tag.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/team/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-shield"></i>\n						<a href="#">{{ \'APPLICATION_TEAMS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-shield font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TEAMS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="teams.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_TEAM\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<!-- <li>\n								<a href="#">\n								<i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n							</li> -->\n							<li>\n								<a href="/teams/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n							<!-- <li>\n								<a href="#">\n								<i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n							</li> -->\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getTeams([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="teams.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedTeams" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.teamsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="teamByPage in teamsByPage | filter: $select.search">\n													<div ng-bind-html="teamByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="team in displayedTeams" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="teams.checked" checklist-value="team.id"></td>\n					      <td>{{team.name}}</td>\n								<td>{{team.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/teams/view/{{team.id}}/settings" data-ng-class="{\'disabled\': team.defaultEntry}">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(team.name, team.id)" data-ng-class="{\'disabled\': team.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n              <tr data-ng-hide="displayedTeams.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No teams available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.teamsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/team/view/view.agents.html",'<div class="row" data-ng-init="initAgents()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n			<!-- GENERAL TAB -->\n				<!-- BEGIN PORTLET-->\n					<!-- BEGIN FORM-->\n					<form action="index.html" class="form-horizontal form-row-seperated">\n						<div class="form-body">\n							<div class="form-group last">\n								<div class="col-md-9" id="multi-select-team">\n								</div>\n							</div>\n						</div>\n					</form>\n					<!-- END FORM-->\n				<!-- END PORTLET-->\n			<!-- END GENERAL TAB -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/team/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-shield"></i>\n					<a href="/teams/list">{{ \'APPLICATION_TEAMS\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{team.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img ng-src="assets/images/media/team.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{team.name}}\n					</div>\n\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.teams.view.settings\')}">\n							<a data-ng-href="/teams/view/{{team.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.teams.view.agents\')}">\n							<a data-ng-href="/teams/view/{{team.id}}/agents">\n							<i class="icon-users"></i>\n							{{ \'APPLICATION_AGENTS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/team/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n			</div>\n\n			<div class="portlet-body">\n				<!-- PERSONAL INFO TAB -->\n				<div>\n\n					<form name="forms.info" data-ng-submit="updateItem()" novalidate>\n						<!-- START NAME -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n							<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="team.name" required/>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="team.description"/>\n						</div>\n						<!-- END DESCRIPTION -->\n\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n					</form>\n				</div>\n				<!-- END PERSONAL INFO TAB -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/team/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n            <i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-shield"></i>\n						<a href="/teams/list">{{ \'APPLICATION_TEAMS\' | translate }}</a>\n            <i class="fa fa-angle-right"></i>\n					</li>\n          <li>\n						<i class="icon-user-following"></i>\n						<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div id="team" class="row" data-ng-init="getAgents()">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TEAM\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_TEAM_INFO\' | translate}}" canexit="formValidation(forms.info.$valid)">\n						<form name="forms.info" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trigger/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-bulb"></i>\n						<a href="#">{{ \'APPLICATION_TRIGGERS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-bulb font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TRIGGERS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Triggers.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_TRIGGER\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/triggers/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getTriggers([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="triggers.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedTriggers" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.TriggersByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="TriggerByPage in TriggersByPage | filter: $select.search">\n													<div ng-bind-html="TriggerByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(Trigger, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="channel">{{ \'APPLICATION_CHANNEL\' | translate }}</th>\n								<th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="Trigger in displayedTriggers">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="Triggers.checked" checklist-value="Trigger.id"></td>\n					      <td>{{Trigger.name}}</td>\n								<td>{{Trigger.description}}</td>\n								<td>{{Trigger.channel | capitalize}}</td>\n								<td>\n									<input\n										data-ng-change="updateItem(Trigger.id, Trigger.status)",\n								    bs-switch\n								    ng-model="Trigger.status"\n								    type="checkbox"\n								    switch-active="{{ isActive }}"\n								    switch-on-text="{{ onText }}"\n								    switch-off-text="{{ offText }}"\n								    switch-on-color="{{ onColor }}"\n								    switch-off-color="{{ offColor }}"\n								    switch-animate="{{ animate }}"\n								    switch-size="{{ size }}"\n								    switch-label="{{ label }}"\n								    switch-icon="{{ icon }}"\n								    switch-radio-off="{{ radioOff }}"\n								    switch-label-width="{{ labelWidth }}"\n								    switch-handle-width="{{ handleWidth }}">\n								</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/triggers/view/{{Trigger.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(Trigger.name, Trigger.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedTriggers.length">\n								<td colspan="6" class="text-center">\n									<i>No available triggers</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="channel" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CHANNEL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.TriggersByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/trigger/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView();getProperties();">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-bulb"></i>\n					<a href="/triggers/list">{{ \'APPLICATION_TRIGGERS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="trigger"></i>\n				</li>\n				<li data-ng-show="trigger">\n					<a href="#">{{ trigger.description || trigger.name }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/trigger.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ trigger.name }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{ trigger.description }}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.triggers.view.settings\')}">\n							<a href="/triggers/view/{{trigger.id}}/settings">\n							<i class="icon-bulb"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trigger/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_CONDITIONS\' | translate}} & {{\'APPLICATION_ACTIONS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<!-- <pre>\n					{{conditionsData.query | json}}\n				</pre>\n				<pre>\n					{{actionsData.query | json}}\n				</pre> -->\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateTrigger()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="trigger.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="trigger.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n					<!-- <pre>\n						{{conditionsFilter | json}}\n					</pre> -->\n					<div class="tab-pane" id="tab_1_2">\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$triggers.operators" properties="properties[trigger.channel]"></query-builder>\n							</div>\n						</div>\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[trigger.channel]"></query-builder>\n							</div>\n						</div>\n\n						<input class="btn green-haze" type="button" value="{{\'APPLICATION_UPDATE\' | translate}}" data-ng-click="updateTrigger()"/>\n					</div>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/trigger/wizard/wizard.html",'\n<div class="row" data-ng-init="getProperties()">\n	<div class="col-md-12">\n		<!-- BEGIN PAGE HEADER-->\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-bulb"></i>\n					<a href="/triggers/list">{{ \'APPLICATION_TRIGGERS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n		<!-- END PAGE HEADER-->\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-bulb font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TRIGGERS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n						<form name="forms.general" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name"/ required>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n						</form>\n					</wz-step>\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}">\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_CHANNEL\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<div class="form-group"  >\n									<label class="control-label">{{ \'APPLICATION_CHANNEL\' | translate }}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="item.channel" name="channel" theme="bootstrap" required>\n										<ui-select-match placeholder="{{ \'APPLICATION_CHANNEL\' | translate }}">{{$select.selected | capitalize}}</ui-select-match>\n										<ui-select-choices repeat="channel in $triggers.channels | filter: $select.search">\n											<div ng-bind-html="channel | highlight: $select.search | capitalize"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n							</div>\n						</div>\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$triggers.operators" properties="properties[item.channel]"></query-builder>\n							</div>\n						</div>\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[item.channel]"></query-builder>\n							</div>\n						</div>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trunk/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-link"></i>\n					<a href="/trunks/list">{{ \'APPLICATION_TRUNKS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-link font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TRUNKS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="trunks.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_TRUNK\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/trunks/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getTrunks([\'name\', \'host\', \'context\', \'description\'])" csv-header="[\'Name\', \'Host\', \'Context\', \'Description\']" field-separator=";" filename="trunks.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedTrunks" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.trunksByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="trunkByPage in trunksByPage | filter: $select.search">\n													<div ng-bind-html="trunkByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(trunk, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="host">{{ \'APPLICATION_HOST\' | translate }}</th>\n								<th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="trunk in displayedTrunks" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="trunks.checked" checklist-value="trunk.id"></td>\n								<td>{{trunk.name}}</td>\n                <td>{{trunk.host}}</td>\n								<td>{{trunk.context}}</td>\n					      <td>{{trunk.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/trunks/view/{{trunk.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(trunk.name,trunk.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedTrunks.length">\n								<td colspan="6" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="host" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_HOST\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.trunksByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trunk/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getTrunk()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-link"></i>\n					<a href="/trunks/list">{{ \'APPLICATION_TRUNKS\' | translate }}</a>\n					<i data-ng-show="trunk" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="trunk">\n					<a href="#">{{trunk.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/trunk.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{trunk.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.trunks.view.settings\')}">\n							<a data-ng-href="/trunks/view/{{trunk.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trunk/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_TRUNK\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_ADVANCED\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts();">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateTrunk()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="trunk.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n							<div class="row">\n								<div class="col-md-6">\n\n							<!-- START HOST -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.host.$touched || forms.general.$submitted) && forms.general.host.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HOST\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="trunk.host" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_HOST\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.host.$touched || forms.general.$submitted) && forms.general.host.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END HOST -->\n\n							<!-- START SECRET -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.secret.$touched || forms.general.$submitted) && forms.general.secret.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NEW_SECRET\' | translate}}</label>\n								<input type="password" name="secret" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="trunk.secret">\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_SECRET\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.secret.$touched || forms.general.$submitted) && forms.general.secret.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END SECRET -->\n\n							<!-- START CONFIRM SECRET -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rsecret.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONFIRM_SECRET\' | translate}}</label>\n								<input type="password" name="rsecret" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="trunk.rsecret" nx-equal="trunk.secret"/>\n								<span data-ng-show="forms.general.$submitted && (forms.general.rsecret.$invalid || forms.general.rsecret.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONFIRM SECRET -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<!-- START CALLERID -->\n							<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.general.callerid.$touched || forms.general.$submitted) && forms.general.callerid.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CALLERID\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="callerid" placeholder="{{\'APPLICATION_CALLERID\' | translate}}" class="form-control" data-ng-model="trunk.callerid" required/>\n								<span data-ng-show="(forms.general.callerid.$touched || forms.general.$submitted) && forms.general.callerid.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div> -->\n							<!-- END CALLERID -->\n\n							<!-- START TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.type.$touched || forms.general.$submitted) && forms.general.type.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.type" name="type" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'user\',\'peer\',\'friend\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_TYPE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.type.$touched || forms.general.$submitted) && forms.general.type.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TYPE -->\n\n							<!-- START DTMFMODE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.dtmfmode.$touched || forms.general.$submitted) && forms.general.dtmfmode.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DTMFMODE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.dtmfmode" name="dtmfmode" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'rfc2833\', \'info\', \'shortinfo\', \'inband\',\'auto\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_DTMFMODE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.dtmfmode.$touched || forms.general.$submitted) && forms.general.dtmfmode.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END DTMFMODE -->\n\n						</div>\n						<div class="col-md-6">\n\n							<!-- START DEFAULT USER -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.defaultuser.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DEFAULT_USER\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="defaultuser" placeholder="{{\'APPLICATION_DEFAULT_USER\' | translate}}" class="form-control" data-ng-model="trunk.defaultuser" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_DEFAULT_USER\' | translate }}\n								</span>\n								<span data-ng-show="forms.general.$submitted && (forms.general.defaultuser.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END DEFAULT USER -->\n\n							<!-- START NAT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.nat.$touched || forms.general.$submitted) && forms.general.nat.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select multiple data-ng-model="trunk.nat" name="nat" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\', \'no\', \'never\', \'route\', \'force_rport\', \'comedia\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_NAT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.nat.$touched || forms.general.$submitted) && forms.general.nat.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAT -->\n\n							<!-- START QUALIFY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.qualify.$touched || forms.general.$submitted) && forms.general.qualify.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUALIFY\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.qualify" name="qualify" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_QUALIFY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.qualify.$touched || forms.general.$submitted) && forms.general.qualify.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUALIFY -->\n\n							<!-- START ALLOW -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.allow.$touched || forms.general.$submitted) && forms.general.allow.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ALLOW_CODEC\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select multiple data-ng-model="trunk.allow" name="allow" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'g723\',\'gsm\',\'ulaw\',\'alaw\',\'g726\',\'g722\',\'g729\',\'ilbc\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_ALLOW_CODEC\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.allow.$touched || forms.general.$submitted) && forms.general.allow.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ALLOW -->\n\n							<!-- START INSECURE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.insecure.$touched || forms.general.$submitted) && forms.general.insecure.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INSECURE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select multiple data-ng-model="trunk.insecure" name="insecure" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'port\',\'invite\',\'very\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_INSECURE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.insecure.$touched || forms.general.$submitted) && forms.general.insecure.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INSECURE -->\n\n							<!-- START CALLLIMIT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.call-limit.$touched || forms.general.$submitted) && forms.general.call-limit.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CALLLIMIT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="number" min="0" name="call-limit" placeholder="{{\'APPLICATION_CALLLIMIT\' | translate}}" class="form-control" data-ng-model="trunk[\'call-limit\']"/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_CALLLIMIT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.call-limit.$touched || forms.general.$submitted) && forms.general.call-limit.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CALLLIMIT -->\n\n						</div>\n					</div>\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="trunk.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n					<!-- ADVANCED TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<form name="forms.advanced" data-ng-submit="forms.advanced.$valid && updateTrunk()" novalidate>\n							<div class="row">\n								<div class="col-md-6">\n							<!-- START LIMITONPEERS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.limitonpeers.$touched || forms.advanced.$submitted) && forms.advanced.limitonpeers.$invalid}">\n								<label class="control-label">{{\'APPLICATION_LIMITONPEERS\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.limitonpeers" name="limitonpeers" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_LIMITONPEERS\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.limitonpeers.$touched || forms.advanced.$submitted) && forms.advanced.limitonpeers.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END LIMITONPEERS -->\n\n							<!-- START REGISTRY -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_REGISTRY\' | translate}}</label>\n								<input type="text" name="registry" placeholder="{{\'APPLICATION_REGISTRY\' | translate}}" class="form-control" data-ng-model="trunk.registry"/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_REGISTRY\' | translate }}\n								</span>\n							</div>\n							<!-- END REGISTRY -->\n\n							<!-- START DIRECTMEDIA -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.directmedia.$touched || forms.advanced.$submitted) && forms.advanced.directmedia.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DIRECTMEDIA\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.directmedia" name="directmedia" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\', \'no\', \'nonat\', \'update\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_DIRECTMEDIA\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.directmedia.$touched || forms.advanced.$submitted) && forms.advanced.directmedia.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END DIRECTMEDIA -->\n\n							<!-- START CALLCOUNTER -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.callcounter.$touched || forms.advanced.$submitted) && forms.advanced.callcounter.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CALLCOUNTER\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.callcounter" name="callcounter" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_CALLCOUNTER\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.callcounter.$touched || forms.advanced.$submitted) && forms.advanced.callcounter.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CALLCOUNTER -->\n\n							<!-- START FROMDOMAIN -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.advanced.$submitted && forms.advanced.fromdomain.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FROMDOMAIN\' | translate}}</label>\n								<input type="text" name="fromdomain" placeholder="{{\'APPLICATION_FROMDOMAIN\' | translate}}" class="form-control" data-ng-model="trunk.fromdomain" />\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_FROMDOMAIN\' | translate }}\n								</span>\n								<span data-ng-show="forms.advanced.$submitted && (forms.advanced.fromdomain.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FROMDOMAIN -->\n\n							<!-- START FROMUSER -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.advanced.$submitted && forms.advanced.fromuser.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FROMUSER\' | translate}}</label>\n								<input type="text" name="fromuser" placeholder="{{\'APPLICATION_FROMUSER\' | translate}}" class="form-control" data-ng-model="trunk.fromuser" />\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_FROMUSER\' | translate }}\n								</span>\n								<span data-ng-show="forms.advanced.$submitted && (forms.advanced.fromuser.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FROMUSER -->\n\n						</div>\n						<div class="col-md-6">\n\n							<!-- START OUTBOUNDPROXY -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.advanced.$submitted && forms.advanced.outboundproxy.$invalid}">\n								<label class="control-label">{{\'APPLICATION_OUTBOUNDPROXY\' | translate}}</label>\n								<input type="text" name="outboundproxy" placeholder="{{\'APPLICATION_OUTBOUNDPROXY\' | translate}}" class="form-control" data-ng-model="trunk.outboundproxy" />\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_OUTBOUNDPROXY\' | translate }}\n								</span>\n								<span data-ng-show="forms.advanced.$submitted && (forms.advanced.outboundproxy.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END OUTBOUNDPROXY -->\n\n							<!-- START USEREQPHONE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.usereqphone.$touched || forms.advanced.$submitted) && forms.advanced.usereqphone.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USEREQPHONE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.usereqphone" name="usereqphone" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_USEREQPHONE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.usereqphone.$touched || forms.advanced.$submitted) && forms.advanced.usereqphone.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USEREQPHONE -->\n\n							<!-- START TRUSTRPID -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.trustrpid.$touched || forms.advanced.$submitted) && forms.advanced.trustrpid.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TRUSTRPID\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.trustrpid" name="trustrpid" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_TRUSTRPID\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.trustrpid.$touched || forms.advanced.$submitted) && forms.advanced.trustrpid.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TRUSTRPID -->\n\n							<!-- START SENDRPID -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.sendrpid.$touched || forms.advanced.$submitted) && forms.advanced.sendrpid.$invalid}">\n								<label class="control-label">{{\'APPLICATION_SENDRPID\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.sendrpid" name="sendrpid" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_SENDRPID\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.sendrpid.$touched || forms.advanced.$submitted) && forms.advanced.sendrpid.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END SENDRPID -->\n\n							<!-- START ENCRYPTION -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.encryption.$touched || forms.advanced.$submitted) && forms.advanced.encryption.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ENCRYPTION\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.encryption" name="encryption" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_ENCRYPTION\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.encryption.$touched || forms.advanced.$submitted) && forms.advanced.encryption.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ENCRYPTION -->\n\n							<!-- START PORT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.port.$touched || forms.advanced.$submitted) && forms.advanced.port.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PORT\' | translate}}</label>\n								<input type="number" min="0" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="trunk.port"/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_PORT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.port.$touched || forms.advanced.$submitted) && forms.advanced.port.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PORT -->\n\n							<!-- START TRANSPORT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.transport.$touched || forms.advanced.$submitted) && forms.advanced.transport.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TRANSPORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select multiple data-ng-model="trunk.transport" name="transport" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'udp\',\'wss\',\'ws\',\'tcp\',\'tls\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_TRANSPORT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.transport.$touched || forms.advanced.$submitted) && forms.advanced.transport.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TRANSPORT -->\n\n						</div>\n					</div>\n					<!-- START OTHER FIELDS-->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_OTHER_FIELDS\' | translate}}</label>\n						<textarea type="text" name="otherFields" placeholder="{{\'APPLICATION_OTHER_FIELDS\' | translate}}" class="form-control" data-ng-model="trunk.otherFields"></textarea>\n						<span class="help-block">\n							{{ \'DESCRIPTION_TRUNK_OTHER_FIELDS\' | translate }}\n						</span>\n					</div>\n					<!-- END OTHER FIELDS -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
-a.put("app/trunk/wizard/wizard.html",'<div class="col-md-12" data-ng-init="initWizard()">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-link"></i>\n				<a href="/trunks/list">{{ \'APPLICATION_TRUNKS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-link font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_TRUNK\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n			    <form name="forms.general" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="forms.general.$submitted && forms.general.name.$invalid" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n						<!-- START ROLE -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.general.role.$touched || forms.general.$submitted) && forms.general.role.$invalid}">\n							<label class="control-label">{{\'APPLICATION_USAGE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.role" name="role" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.value}}</ui-select-match>\n								<ui-select-choices repeat="type.key as type in types | filter: $select.search">\n									<div ng-bind-html="type.value | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_TRUNK_ROLE\' | translate }}\n							</span>\n							<span data-ng-show="(forms.general.role.$touched || forms.general.$submitted) && forms.general.role.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END ROLE -->\n\n						<!-- START HOST -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.host.$invalid}">\n							<label class="control-label">{{\'APPLICATION_HOST\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.host" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_TRUNK_HOST\' | translate }}\n							</span>\n							<span data-ng-show="forms.general.$submitted && forms.general.host.$invalid" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END HOST -->\n\n						<!-- START PASSWORD -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.password.$invalid}">\n							<label class="control-label">{{\'APPLICATION_SECRET\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.secret" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_TRUNK_SECRET\' | translate }}\n							</span>\n							<span data-ng-show="forms.general.$submitted && forms.general.password.$invalid" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END PASSWORD -->\n\n						<!-- START CONFIRM PASSWORD -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rpassword.$invalid}">\n							<label class="control-label">{{\'APPLICATION_CONFIRM_SECRET\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.secret" required/>\n							<span data-ng-show="forms.general.$submitted && (forms.general.rpassword.$invalid)" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n							</span>\n						</div>\n						<!-- END CONFIRM PASSWORD -->\n\n						<!-- START DEFAULT USER -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.defaultuser.$invalid}">\n							<label class="control-label">{{\'APPLICATION_DEFAULT_USER\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="defaultuser" placeholder="{{\'APPLICATION_DEFAULT\' | translate}} {{\'APPLICATION_USER\' | translate}}" class="form-control" data-ng-model="item.defaultuser" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_TRUNK_DEFAULT_USER\' | translate }}\n							</span>\n							<span data-ng-show="forms.general.$submitted && (forms.general.defaultuser.$invalid)" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n							</span>\n						</div>\n						<!-- END DEFAULT USER -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n\n						<button class="btn green-haze" type="submit" ng-click="next(true)">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_ADVANCED\' | translate}}" canexit="exitValidation(forms.advanced.$valid)">\n					<form name="forms.advanced" novalidate>\n\n						<!-- START REGISTRY -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_REGISTRY\' | translate}}</label>\n							<input type="text" name="registry" placeholder="{{\'APPLICATION_REGISTRY\' | translate}}" class="form-control" data-ng-model="item.registry"/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_TRUNK_REGISTRY\' | translate }}\n							</span>\n						</div>\n						<!-- END REGISTRY -->\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</form>\n				</wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/update/list/checkout/checkout.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text" ng-bind="modal.text"></p>\n  <div ng-if="modal.html" ng-bind-html="modal.html"></div>\n</div>\n<div class="modal-footer">\n  <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" ng-bind="button.text" class="btn"></button>\n</div>\n'),a.put("app/update/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-cloud-download"></i>\n					<a href="/updates/list">{{ \'APPLICATION_UPDATES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-cloud-download font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_UPDATES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-default" href="#" data-ng-click="pull()">\n						<i class="icon-cloud-download"></i> {{ \'APPLICATION_UPDATE\' | translate }}\n					</a>\n				</div>\n			</div>\n			<div class="portlet-body" data-ng-init="initList()">\n				<!-- BEGIN TABLE -->\n					<table st-table="displayedUpdates" st-safe-src="updates" class="table table-striped table-bordered table-hover">\n						<div class="table-responsive">\n						  <thead>\n								<tr>\n									<th colspan="3">\n										<div class="row">\n											<div class="col-md-12">\n												<ui-select class="input-xsmall" ng-model="conf.updatesByPage" theme="bootstrap" ng-disabled="disabled">\n													<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n													<ui-select-choices repeat="updateByPage in updatesByPage | filter: $select.search">\n														<div ng-bind-html="updateByPage.name | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n									</th>\n								</tr>\n								<tr>\n									<th st-sort="message">{{ \'APPLICATION_MESSAGE\' | translate }}</th>\n									<th st-sort="version">{{ \'APPLICATION_VERSION\' | translate }}</th>\n									<th>{{ \'APPLICATION_DATE\' | translate }}</th>\n									<!-- <th class="small-cells"></th> -->\n							  </tr>\n						  </thead>\n							<tbody>\n						    <tr data-ng-repeat="update in displayedUpdates">\n									<td>\n										{{update.message}}\n									</td>\n									<td>\n										{{update.version}}\n									</td>\n									<td>\n										{{update.date}}\n									</td>\n									<!-- <td>\n						        <a class="btn default btn-xs green-stripe" href="#" data-ng-click="checkout(update.hash)">\n											<i class="icon-cloud-download"></i> {{ \'APPLICATION_CHECKOUT\' | translate }}\n						        </a>\n						      </td> -->\n						    </tr>\n								<tr data-ng-hide="displayedUpdates.length">\n									<td colspan="9" style="text-align:center;">\n										<i>{{\'MESSAGE_NO_AVAILABLE_UPDATES\' | translate}}</i>\n									</td>\n								</tr>\n						  </tbody>\n						  <tfoot>\n								<tr>\n									<td colspan="1">\n										<div class="input-icon right">\n											<i class="fa fa-search"></i>\n											<input st-search="message" placeholder="{{ \'APPLICATION_MESSAGE\' | translate | lowercase}}" class="form-control" type="search"/>\n										</div>\n									<td colspan="9"></td>\n							  </tr>\n						    <tr>\n						      <td colspan="10" class="text-center">\n										<div class="pagination" st-pagination st-items-by-page="conf.updatesByPage.value" st-displayed-pages="7"></div>\n						      </td>\n						    </tr>\n						  </tfoot>\n						</div>\n					</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/update/view/view.account.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li data-ng-class="{\'active\': Auth.isAdmin()}" data-ng-show="Auth.isAdmin()">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_PERSONAL_INFO\' | translate}}</a>\n					</li>\n					<li data-ng-show="Auth.isAdmin()">\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_CHANGE_AVATAR\' | translate}}</a>\n					</li>\n					<li data-ng-show="Auth.isAdmin() || update.id === Auth.getCurrentUser().id" data-ng-class="{\'active\': !Auth.isAdmin() && update.id === Auth.getCurrentUser().id}">\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_CHANGE_PASSWORD\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- PERSONAL INFO TAB -->\n					<div class="tab-pane" data-ng-class="{\'active\': Auth.isAdmin()}" data-ng-show="Auth.isAdmin()" id="tab_1_1">\n						<form name="forms.info" data-ng-submit="updateItem()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="update.fullname" required/>\n								<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="update.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START EMAIL -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="update.email" required/>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n								</span>\n							</div>\n							<!-- END EMAIL -->\n\n							<!-- START INTERNAL -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="update.internal" required disabled/>\n								<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERNAL -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END PERSONAL INFO TAB -->\n					<!-- CHANGE AVATAR TAB -->\n					<div class="tab-pane" data-ng-show="Auth.isAdmin()" id="tab_1_2">\n						<form action="#" role="form">\n							<div class="form-group">\n								<div class="fileinput fileinput-new" data-provides="fileinput">\n									<div class="fileinput-new thumbnail" style="width: 200px; height: 150px;">\n										<img src="http://www.placehold.it/200x150/EFEFEF/AAAAAA&amp;text=no+image" alt=""/>\n									</div>\n									<div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 150px;">\n									</div>\n									<div>\n										<span class="btn default btn-file" data-ng-show="!uploader.queue[0]">\n											<span> {{ \'APPLICATION_SELECT_IMAGE\' | translate }} </span>\n											<input type="file" nv-file-select="" uploader="uploader" /><br/>\n										</span>\n										<button type="button" class="btn default" data-ng-show="uploader.queue[0]" data-dismiss="fileinput" ng-click="uploader.queue[0].remove()">\n											{{ \'APPLICATION_REMOVE\' | translate }}\n										</button>\n										<button type="button" class="btn green-haze" data-ng-show="uploader.queue[0]" data-ng-click="uploader.queue[0].upload()" ng-disabled="uploader.queue[0].isReady || uploader.queue[0].isUploading || uploader.queue[0].isSuccess">\n											{{ \'APPLICATION_CONFIRM\' | translate }}\n										</button>\n									</div>\n									<p>\n										</br> {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} <b>jpg, png, jpeg</b>.\n									</p>\n								</div>\n							</div>\n						</form>\n						<div class="row">\n							<div class="col-md-2">\n								<table class="table" border="0">\n									<tbody>\n									<tr data-ng-repeat="item in uploader.queue">\n											<td style="border-top-style:none">\n												<strong>\n													{{ item.file.name }}\n												</strong>\n											</td>\n											<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n												{{ item.file.size/1024/1024|number:2 }} MB\n											</td>\n											<td nowrap style="border-top-style:none">\n												<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n														<span class="glyphicon glyphicon-trash"></span> Remove\n												</button>\n											</td>\n										</tr>\n									</tbody>\n								</table>\n							</div>\n						</div>\n					</div>\n					<!-- END CHANGE AVATAR TAB -->\n					<!-- CHANGE PASSWORD TAB -->\n					<div class="tab-pane" data-ng-show="Auth.isAdmin() || update.id === Auth.getCurrentUser().id" data-ng-class="{\'active\': !Auth.isAdmin() && update.id === Auth.getCurrentUser().id}" id="tab_1_3">\n						<form name="forms.changePwd" data-ng-submit="forms.changePwd.$valid && updatePassword()" novalidate>\n							<!-- START CURRENT PWD -->\n							<div class="form-group" data-ng-if="!Auth.isAdmin()" data-ng-class="{\'has-error\': (forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="current_pwd" placeholder="{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}" class="form-control" data-ng-model="update.currentPwd" required/>\n								<span data-ng-show="(forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CURRENT PWD -->\n							<!-- START NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="new_pwd" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="update.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NEW PWD -->\n							<!-- START RE-NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.re_new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.re_new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="re_new_pwd" placeholder="{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="update.reNewPwd" nx-equal="update.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RE-NEW PWD -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END CHANGE PASSWORD TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/update/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-people"></i>\n					<a href="/updates/list">{{ \'APPLICATION_UPDATES\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{update.fullname}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-userpic">\n					<img ng-src="api/users/avatar/{{update.userpic ? update.userpic : \'unknown_avatar\'}}" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- START SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{update.fullname}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{update.role}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.updates.view.account\')}">\n							<a data-ng-href="/updates/view/{{update.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/update/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-people"></i>\n				<a href="/updates/list">{{ \'APPLICATION_UPDATES\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/updates/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" ng-init="getFirstFreeInternal();">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-user font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_UPDATE\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_ACCOUNT\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n			    <form name="forms.info" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n							<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n			      <!-- START USERNAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.name" required ng-remote-validate="/api/updates/validate/name"/>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END USERNAME -->\n\n			      <!-- START EMAIL -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="item.email" required ng-remote-validate="/api/updates/validate/email"/>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_EMAIL\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END EMAIL -->\n\n			      <!-- START PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n			        <span data-ng-show="(forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END PASSWORD -->\n\n			      <!-- START RE PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.nxEqual" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END RE PASSWORD -->\n\n						<!-- START INTERNAL -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n							<label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<div class="input-group">\n							<input type="number" min="1" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="item.internal" data-ng-disabled="!item.internalEnabled" data-ng-required="item.internalEnabled" ng-remote-validate="/api/updates/validate/internal"/>\n							<span class="input-group-addon">\n								<input type="checkbox" data-ng-model="item.internalEnabled">\n							</span>\n							</div>\n							<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n							<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.ngRemoteValidate" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_INTERNAL\' | translate}}.\n							</span>\n						</div>\n						<!-- END INTERNAL -->\n\n			      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_VOICE\' | translate}}" canexit="exitValidation(forms.voice.$valid)">\n					<form name="forms.voice" novalidate>\n\n						<!-- START ACCOUNTCODE -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.accountcode.$touched || forms.voice.$submitted) && forms.voice.accountcode.$invalid}">\n							<label class="control-label">{{\'APPLICATION_ACCOUNTCODE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="number" name="accountcode" placeholder="{{\'APPLICATION_ACCOUNTCODE\' | translate}}" class="form-control" data-ng-model="item.accountcode" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.accountcode.$touched || forms.voice.$submitted) && forms.voice.accountcode.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END ACCOUNTCODE -->\n\n						<!-- START TRANSPORT -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_TRANSPORT\' | translate}}</label>\n							<ui-select multiple name="transport" ng-model="item.transport" theme="bootstrap" ng-disabled="disabled">\n						    <ui-select-match placeholder="Select transport...">{{$item}}</ui-select-match>\n						    <ui-select-choices repeat="transport in [\'udp\', \'tcp\', \'ws\', \'wss\'] | filter: $select.search">\n						    	{{transport}}\n						    </ui-select-choices>\n						  </ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n							</span>\n						</div>\n						<!-- END TRANSPORT -->\n\n						<!-- START HOST -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.host.$touched || forms.voice.$submitted) && forms.voice.host.$invalid}">\n							<label class="control-label">{{\'APPLICATION_HOST\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.host" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.host.$touched || forms.voice.$submitted) && forms.voice.host.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END HOST -->\n\n						<!-- START NAT -->\n						<!-- <div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_NAT\' | translate}}</label>\n							<ui-select multiple ng-model="item.nat" name="nat" theme="bootstrap" ng-disabled="disabled">\n								<ui-select-match placeholder="{{ \'APPLICATION_SEARCH_FILTER\' | translate }}">{{$item}}</ui-select-match>\n								<ui-select-choices repeat="nat in [\'yes\', \'no\', \'never\', \'route\', \'force_rport\', \'comedia\'] | filter: $select.search">\n									{{nat}}\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_NAT\' | translate }}\n							</span>\n						</div> -->\n\n						<!-- END NAT -->\n\n						<!-- START TYPE -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.type.$touched || forms.voice.$submitted) && forms.voice.type.$invalid}">\n							<label class="control-label">{{\'APPLICATION_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.type" name="type" theme="bootstrap" required>\n								<ui-select-match placeholder="{{ \'APPLICATION_SEARCH_FILTER\' | translate }}">{{$select.selected}}</ui-select-match>\n								<ui-select-choices repeat="type in [\'friend\', \'user\', \'peer\'] | filter: $select.search">\n									<div ng-bind-html="type | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_TYPE\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.type.$touched || forms.voice.$submitted) && forms.voice.type.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END TYPE -->\n\n						<!-- START CODEC -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_ALLOWED_CODECS\' | translate}}</label>\n							<ui-select multiple ng-model="item.allow" name="allow" theme="bootstrap" ng-disabled="disabled">\n						    <ui-select-match placeholder="Select codec...">{{$item}}</ui-select-match>\n						    <ui-select-choices repeat="allow in [\'g729\', \'ilbc\', \'gsm\', \'ulaw\', \'alaw\'] | filter: $select.search">\n						    	{{allow}}\n						    </ui-select-choices>\n						  </ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n							</span>\n						</div>\n						<!-- END CODEC -->\n\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						<input class="btn default" type="button" value="{{\'APPLICATION_BACK\' | translate}}" wz-previous/>\n					</form>\n				</wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),
-a.put("app/user/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-eye"></i>\n					<a href="/users/list">{{ \'APPLICATION_USERS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-eye font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_USERS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="users.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_USER\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/users/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getUsers([\'name\', \'fullname\', \'email\'])" csv-header="[\'Username\', \'Fullname\', \'Email\']" field-separator=";" filename="users.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table id="table" st-table="displayedUsers" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.usersByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="userByPage in usersByPage | filter: $select.search">\n													<div ng-bind-html="userByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(user, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="fullname">{{ \'APPLICATION_FULLNAME\' | translate }}</th>\n						    <th st-sort="name">{{ \'APPLICATION_USERNAME\' | translate }}</th>\n						    <th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n								<th st-sort="role">{{ \'APPLICATION_ROLE\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="user in displayedUsers" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="users.checked" checklist-value="user.id"></td>\n								<td>{{user.fullname}}</td>\n					      <td>{{user.name}}</td>\n					      <td><a ng-href="mailto:{{user.email}}">{{user.email}}</a></td>\n								<td>{{user.role}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/users/view/{{user.id}}/account">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(user.fullname, user.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedUsers.length">\n								<td colspan="6" style="text-align:center;">\n									<i>No users available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="fullname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="role" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_ROLE\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.usersByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/user/view/view.account.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_PERSONAL_INFO\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_CHANGE_AVATAR\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-ng-show="Auth.isAdmin() || user.id === getCurrentUser().id" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_CHANGE_PASSWORD\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- PERSONAL INFO TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.info" data-ng-submit="updateItem()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="user.fullname" required/>\n								<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="user.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START EMAIL -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="user.email" required/>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n								</span>\n							</div>\n							<!-- END EMAIL -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END PERSONAL INFO TAB -->\n					<!-- CHANGE AVATAR TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<form action="#" role="form">\n							<div class="form-group">\n								<div class="fileinput fileinput-new" data-provides="fileinput">\n									<div class="fileinput-new thumbnail" style="width: 200px; height: 150px;">\n										<img src="http://www.placehold.it/200x150/EFEFEF/AAAAAA&amp;text=no+image" alt=""/>\n									</div>\n									<div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 150px;">\n									</div>\n									<div>\n										<span class="btn default btn-file" data-ng-show="!uploader.queue[0]">\n											<span> {{ \'APPLICATION_SELECT_IMAGE\' | translate }} </span>\n											<input type="file" nv-file-select="" uploader="uploader" /><br/>\n										</span>\n										<button type="button" class="btn default" data-ng-show="uploader.queue[0]" data-dismiss="fileinput" ng-click="uploader.queue[0].remove()">\n											<span> {{ \'APPLICATION_REMOVE\' | translate }} </span>\n										</button>\n										<button type="button" class="btn green-haze" data-ng-show="uploader.queue[0]" data-ng-click="uploader.queue[0].upload()" ng-disabled="uploader.queue[0].isReady || uploader.queue[0].isUploading || uploader.queue[0].isSuccess">\n											<span> {{ \'APPLICATION_CONFIRM\' | translate }} </span>\n										</button>\n									</div>\n									<p>\n										</br> {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} <b>jpg, png, jpeg</b>.\n									</p>\n								</div>\n							</div>\n						</form>\n						<div class="row">\n							<div class="col-md-2">\n								<table class="table" border="0">\n									<tbody>\n									<tr data-ng-repeat="item in uploader.queue">\n											<td style="border-top-style:none">\n												<strong>\n													{{ item.file.name }}\n												</strong>\n											</td>\n											<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n												{{ item.file.size/1024/1024|number:2 }} MB\n											</td>\n											<td nowrap style="border-top-style:none">\n												<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n														<span class="glyphicon glyphicon-trash"></span> Remove\n												</button>\n											</td>\n										</tr>\n									</tbody>\n								</table>\n							</div>\n						</div>\n					</div>\n					<!-- END CHANGE AVATAR TAB -->\n					<!-- CHANGE PASSWORD TAB -->\n					<div class="tab-pane" id="tab_1_3" data-ng-show="Auth.isAdmin() || user.id === getCurrentUser().id">\n						<form name="forms.changePwd" data-ng-submit="forms.changePwd.$valid && updatePassword()" novalidate>\n							<!-- START CURRENT PWD -->\n							<div class="form-group" data-ng-if="!Auth.isAdmin()" data-ng-class="{\'has-error\': (forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="current_pwd" placeholder="{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}" class="form-control" data-ng-model="user.currentPwd" required/>\n								<span data-ng-show="(forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CURRENT PWD -->\n							<!-- START NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="new_pwd" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="user.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NEW PWD -->\n							<!-- START RE-NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.re_new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.re_new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="re_new_pwd" placeholder="{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="user.reNewPwd" nx-equal="user.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RE-NEW PWD -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n						<!-- <form action="#">\n							<div class="form-group">\n								<label class="control-label">Current Password</label>\n								<input type="password" class="form-control"/>\n							</div>\n							<div class="form-group">\n								<label class="control-label">New Password</label>\n								<input type="password" class="form-control"/>\n							</div>\n							<div class="form-group">\n								<label class="control-label">Re-type New Password</label>\n								<input type="password" class="form-control"/>\n							</div>\n							<div class="margin-top-10">\n								<a href="#" class="btn green-haze">Change Password </a>\n								<a href="#" class="btn default">Cancel </a>\n							</div>\n						</form> -->\n					</div>\n					<!-- END CHANGE PASSWORD TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/user/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-eye"></i>\n					<a href="/users/list">{{ \'APPLICATION_USERS\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{user.fullname}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-userpic">\n					<img ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{user.fullname}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{user.role}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.users.view.account\')}">\n							<a data-ng-href="/users/view/{{user.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/user/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-eye"></i>\n				<a href="/users/list">{{ \'APPLICATION_USERS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/users/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-user font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_USER\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_ACCOUNT\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n			    <form name="forms.info" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n							<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n			      <!-- START USERNAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.name" required ng-remote-validate="/api/users/validate/name"/>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END USERNAME -->\n\n			      <!-- START EMAIL -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="item.email" required ng-remote-validate="/api/users/validate/email"/>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_EMAIL\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END EMAIL -->\n\n			      <!-- START PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n			        <span data-ng-show="(forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END PASSWORD -->\n\n			      <!-- START RE PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.nxEqual" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END RE PASSWORD -->\n\n			      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/variable/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_VARIABLE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.variable" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.variable.name.$touched || forms.variable.$submitted) && forms.variable.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.variable.name.$touched || forms.variable.$submitted) && forms.variable.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.variable.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/variable/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-eye"></i>\n					<a href="/variables/list">{{ \'APPLICATION_VARIABLES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_VARIABLES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Variables.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<button class="btn green-jungle " ng-click="create()">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_VARIABLE\' | translate }}\n						</button>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getVariables([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="variables.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedVariables" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.variablesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="variableByPage in variablesByPage | filter: $select.search">\n													<div ng-bind-html="variableByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(variable, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="variable in displayedVariables" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="variable.defaultEntry" type="checkbox" checklist-model="Variables.checked" checklist-value="variable.id"></td>\n								<td>{{variable.name}}</td>\n					      <td>{{variable.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/variables/view/{{variable.id}}/settings" data-ng-class="{\'disabled\': variable.defaultEntry}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(variable.name,variable.id)" data-ng-class="{\'disabled\': variable.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedVariables.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_VARIABLES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.variablesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/variable/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getVariable()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-eye"></i>\n					<a href="/variables/list">{{ \'APPLICATION_VARIABLES\' | translate }}</a>\n					<i data-ng-show="variable" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="variable">\n					<a href="#">{{variable.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/variable.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{variable.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.variables.view.settings\')}">\n							<a data-ng-href="/variables/view/{{variable.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/variable/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_VARIABLE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateVariable()" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="variable.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="variable.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/context/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/voice/contexts/list">{{ \'APPLICATION_CONTEXTS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CONTEXTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="voiceContexts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONTEXT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/contexts/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getVoiceContexts([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="voice_contexts.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedContexts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.contextsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="contextByPage in contextsByPage | filter: $select.search">\n													<div ng-bind-html="contextByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(context, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="context in displayedVoiceContexts" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="context.defaultEntry" type="checkbox" checklist-model="voiceContexts.checked" checklist-value="context.id"></td>\n								<td>{{context.name}}</td>\n					      <td>{{context.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/contexts/view/{{context.id}}/settings" data-ng-class="{\'disabled\': context.defaultEntry}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(context.name,context.id)" data-ng-class="{\'disabled\': context.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedVoiceContexts.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_CONTEXTS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.contextsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/context/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getContext()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/voice/contexts/list">{{ \'APPLICATION_CONTEXTS\' | translate }}</a>\n					<i data-ng-show="context" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="context">\n					<a href="#">{{context.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/context.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{context.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.contexts.view.settings\')}">\n							<a data-ng-href="/voice/contexts/view/{{context.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/context/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CONTEXT\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceContext()" novalidate>\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="context.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/context/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-docs"></i>\n				<a href="/voice/contexts/list">{{ \'APPLICATION_CONTEXTS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/voice/contexts/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-docs font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_CONTEXT\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.context.$valid)">\n			    <form name="forms.context" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.context.name.$touched || forms.context.$submitted) && forms.context.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.context.name.$touched || forms.context.$submitted) && forms.context.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n			      <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/moh/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-music-tone"></i>\n					<a href="/voice/mohs/list">{{ \'APPLICATION_MOHS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-music-tone font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_MOHS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="mohs.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_MOH_CLASS\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/mohs/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getMohs([\'name\', \'directory\', \'sort\', \'description\'])" csv-header="[\'Name\', \'Directory\', \'Sort\', \'Description\']" field-separator=";" filename="musiconholds_classes.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedMohs" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.mohsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="mohByPage in mohsByPage | filter: $select.search">\n													<div ng-bind-html="mohByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(moh, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                <th st-sort="directory">{{ \'APPLICATION_PATH\' | translate }}</th>\n                <th st-sort="sort">{{ \'APPLICATION_SORT\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="moh in displayedMohs" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mohs.checked" checklist-value="moh.id" data-ng-hide="moh.defaultEntry"></td>\n								<td>{{moh.name}}</td>\n                <td>{{moh.directory}}</td>\n								<td>{{moh.sort | capitalize}}</td>\n					      <td>{{moh.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-class="{\'disabled\': moh.defaultEntry}" data-ng-href="/voice/mohs/view/{{moh.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-class="{\'disabled\': moh.defaultEntry}" data-ng-click="deleteItem(moh.name,moh.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedMohs.length">\n								<td colspan="6" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_MOHS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="directory" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_PATH\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="sort" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_SORT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.mohsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/moh/view/view.addFiles.html",'\n<div class="row" data-ng-init="getSounds()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_MOH\' | translate }} {{ \'APPLICATION_ADD_FILES\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="note note-warning" data-ng-hide="soundList.length">\n					<h4 class="block">Warning!</h4>\n					<p>\n						 {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n					</p>\n				</div>\n            <form name="forms.general" data-ng-submit="(item.sounds.length > 0) && addMohs()" data-ng-show="soundList.length" novalidate>\n\n              <!-- START SOUNDS -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sounds.$touched || forms.general.$submitted) && item.sounds.length == 0}">\n                <label class="control-label">{{\'APPLICATION_SOUNDS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <ui-select multiple data-ng-model="item.sounds" theme="bootstrap" name="sounds" required>\n                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item.display_name}}</ui-select-match>\n                  <ui-select-choices repeat="sound.id as sound in soundList | filter: $select.search">\n                    {{sound.display_name}}\n                  </ui-select-choices>\n                </ui-select>\n                <span data-ng-show="(forms.general.sounds.$touched || forms.general.$submitted) && item.sounds.length == 0" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END OPTIONS -->\n\n							<input type="submit" class="btn green-haze" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</form>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/moh/view/view.audios.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getAudioFiles()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AUDIOS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="audioFiles">\n						<a class="btn green-jungle " href="/voice/mohs/view/{{moh.id}}/add" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_ADD_FILES\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="note note-warning" data-ng-hide="audioFiles">\n					<h4 class="block">Warning!</h4>\n					<p>\n						 {{ \'MESSAGE_FOLDER_DOES_NOT_EXIST\' | translate }}\n					</p>\n				</div>\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover" data-ng-show="audioFiles">\n					  <thead>\n						  <tr>\n						    <th>{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th width="30%">{{ \'APPLICATION_PREVIEW\' | translate }}</th>\n								<th width="10%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody data-ng-model="audioFiles">\n					    <tr data-ng-repeat="audiofile in audioFiles">\n								<td>{{audiofile}}</td>\n								<td>\n									<audio controls ng-src="{{getSecureSrc(audioSources[audiofile])}}" preload="none">\n				            Your browser does not support the audio tag.\n				          </audio></td>\n					      <td>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(audiofile,audiofile)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="audioFiles.length">\n								<td colspan="3" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_AUDIOFILES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n</div>\n'),a.put("app/voice/moh/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getMoh()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-music-tone"></i>\n					<a href="/voice/mohs/list">{{ \'APPLICATION_MOH_CLASS\' | translate }}</a>\n					<i data-ng-show="moh" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="moh">\n					<a href="#">{{moh.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/moh.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{moh.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.mohs.view.settings\')}">\n							<a data-ng-href="/voice/mohs/view/{{moh.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.voice.mohs.view.audios\') || $state.is(\'main.voice.mohs.view.add\')}">\n							<a data-ng-href="/voice/mohs/view/{{moh.id}}/audios">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_AUDIOS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/moh/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_MOH_CLASS\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts();">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceMoh()" novalidate>\n\n	            <!-- START PATH -->\n	            <div class="form-group" >\n	              <label class="control-label">{{\'APPLICATION_PATH\' | translate}}</label>\n	              <input type="text" name="path" class="form-control" data-ng-model="moh.directory" disabled/>\n	            </div>\n	            <!-- END PATH -->\n\n	            <!-- START SORT -->\n	            <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$invalid}">\n	              <label class="control-label">{{\'APPLICATION_SORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n	              <ui-select data-ng-model="moh.sort" theme="bootstrap" name="sort" required>\n	                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n	                <ui-select-choices repeat="sort.value as sort in sortOptions | filter: $select.search">\n	                  {{$translate.instant(sort.name)}}\n	                </ui-select-choices>\n	              </ui-select>\n	              <span data-ng-show="(forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$error.required" class="help-block help-block-error">\n	                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n	              </span>\n	            </div>\n	            <!-- END SORT -->\n\n	            <!-- START DESCRIPTION -->\n				      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.description.$invalid}">\n				        <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n				        <textarea type="text" name="description" class="form-control" data-ng-model="moh.description"/></textarea>\n								<span data-ng-show="forms.general.$submitted && forms.general.description.$invalid" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n				        </span>\n				      </div>\n				      <!-- END DESCRIPTION -->\n\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
-a.put("app/voice/moh/wizard/wizard.html",'<div class="col-md-12" data-ng-init="initWizard();getContexts();">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-music-tone"></i>\n				<a href="/voice/mohs/list">{{ \'APPLICATION_MOHS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-music-tone font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_MOH_CLASS\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n			    <form name="forms.general" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="forms.general.$submitted && forms.general.name.$invalid" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n            <!-- START SORT -->\n            <!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$invalid}">\n              <label class="control-label">{{\'APPLICATION_SORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <ui-select data-ng-model="item.sort" theme="bootstrap" name="sort" required>\n                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                <ui-select-choices repeat="sort.value as sort in sortOptions | filter: $select.search">\n                  {{$translate.instant(sort.name)}}\n                </ui-select-choices>\n              </ui-select>\n              <span data-ng-show="(forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div> -->\n            <!-- END SORT -->\n\n            <!-- START DESCRIPTION -->\n			      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.description.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n			        <textarea type="text" name="description" class="form-control" data-ng-model="item.description"/></textarea>\n							<span data-ng-show="forms.general.$submitted && forms.general.description.$invalid" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END DESCRIPTION -->\n\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/queue/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-layers"></i>\n					<a href="/voice/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-layers font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="queues.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/queues/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getQueues([\'name\', \'description\', \'strategy\', \'context\'])" csv-header="[\'Name\', \'Description\', \'Strategy\', \'Context\']" field-separator=";" filename="queues.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedQueues" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.voiceQueuesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="voiceQueueByPage in voiceQueuesByPage | filter: $select.search">\n													<div ng-bind-html="voiceQueueByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(queue, checked)" checklist-model checklist-value="name"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n						    <th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate }}</th>\n								<th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="queue in displayedQueues" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="queues.checked" checklist-value="queue.name"></td>\n								<td>{{queue.name}}</td>\n					      <td>{{queue.description}}</td>\n					      <td>{{queue.strategy}}</td>\n								<td>{{queue.context}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/queues/view/{{queue.name}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(queue.name,queue.name)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedQueues.length">\n								<td colspan="6" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div class="pagination" st-pagination st-items-by-page="conf.voiceQueuesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="note note-warning" data-ng-hide="teams.length">\n				<h4 class="block">Warning!</h4>\n				<p>\n					 {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n				</p>\n			</div>\n			<div class="portlet-body">\n				<!-- BEGIN FORM-->\n				<form action="index.html" class="form-horizontal form-row-seperated">\n					<div class="form-body text-center">\n						<div class="form-group last">\n							<div class="col-md-9" id="multi-select-team">\n							</div>\n						</div>\n					</div>\n				</form>\n				<!-- END FORM-->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-layers"></i>\n					<a href="/voice/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					<i data-ng-show="queue" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="queue">\n					<a href="#">{{queue.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{queue.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.queues.view.settings\')}">\n							<a data-ng-href="/voice/queues/view/{{queue.name}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.voice.queues.view.agents\')}">\n							<a data-ng-href="/voice/queues/view/{{queue.name}}/agents">\n							<i class="icon-people"></i>\n							{{ \'APPLICATION_AGENTS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/queue/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_QUEUE_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_PERIODIC_ANNOUNCE\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_ADVANCED\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts();getMohs();getSounds();">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceQueue()" novalidate>\n							<div class="row">\n								<div class="col-md-6">\n							<!-- START STRATEGY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n								<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n									<ui-select-choices repeat="strategy in [\'ringall\', \'leastrecent\', \'fewestcalls\', \'random\', \'rrmemory\', \'linear\', \'wrandom\', \'rrordered\'] | filter: $select.search">\n										<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_STRATEGY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n				      <!-- END STRATEGY -->\n\n							<!-- START MOH -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.musiconhold.$touched || forms.general.$submitted) && forms.general.musiconhold.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MOH\' | translate}}</label>\n								<ui-select data-ng-model="queue.musiconhold" name="musiconhold" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="musiconhold.name as musiconhold in voiceMohs | filter: $select.search">\n										<div ng-bind-html="musiconhold.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_VOICE_MOH\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.musiconhold.$touched || forms.general.$submitted) && forms.general.musiconhold.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MOH -->\n\n							<!-- START TIMEOUT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="number" min="0" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="queue.timeout" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_TIMEOUT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TIMEOUT -->\n\n							<!-- START MAXLEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.maxlen.$touched || forms.general.$submitted) && forms.general.maxlen.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MAXLEN\' | translate}}</label>\n								<input type="number" min="0" name="maxlen" placeholder="{{\'APPLICATION_MAXLEN\' | translate}}" class="form-control" data-ng-model="queue.maxlen" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MAXLEN\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.maxlen.$touched || forms.general.$submitted) && forms.general.maxlen.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MAXLEN -->\n\n							<!-- START RETRY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.retry.$touched || forms.general.$submitted) && forms.general.retry.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RETRY\' | translate}}</label>\n								<input type="number" min="0" name="retry" placeholder="{{\'APPLICATION_RETRY\' | translate}}" class="form-control" data-ng-model="queue.retry" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_RETRY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.retry.$touched || forms.general.$submitted) && forms.general.retry.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RETRY -->\n\n						</div>\n						<div class="col-md-6">\n							<!-- START WRAPUPTIME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.wrapuptime.$touched || forms.general.$submitted) && forms.general.wrapuptime.$invalid}">\n								<label class="control-label">{{\'APPLICATION_WRAPUPTIME\' | translate}}</label>\n								<input type="number" min="0" name="wrapuptime" placeholder="{{\'APPLICATION_WRAPUPTIME\' | translate}}" class="form-control" data-ng-model="queue.wrapuptime" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_WRAPUPTIME\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.wrapuptime.$touched || forms.general.$submitted) && forms.general.wrapuptime.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END WRAPUPTIME -->\n\n							<!-- START WEIGHT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.weight.$touched || forms.general.$submitted) && forms.general.weight.$invalid}">\n								<label class="control-label">{{\'APPLICATION_WEIGHT\' | translate}}</label>\n								<input type="number" min="0" name="weight" placeholder="{{\'APPLICATION_WEIGHT\' | translate}}" class="form-control" data-ng-model="queue.weight" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_WEIGHT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.weight.$touched || forms.general.$submitted) && forms.general.weight.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END WEIGHT -->\n\n							<!-- START JOINEMPTY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.joinempty.$touched || forms.general.$submitted) && forms.general.joinempty.$invalid}">\n								<label class="control-label">{{\'APPLICATION_JOINEMPTY\' | translate}}</label>\n								<ui-select multiple data-ng-model="queue.joinempty" name="joinempty" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\',\'strict\',\'loose\',\'paused\',\'penalty\',\'inuse\',\'ringing\',\'unavailable\',\'invalid\',\'unknown\',\'wrapup\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_JOINEMPTY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.joinempty.$touched || forms.general.$submitted) && forms.general.joinempty.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END JOINEMPTY -->\n\n							<!-- START LEAVEWHENEMPTY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.leavewhenempty.$touched || forms.general.$submitted) && forms.general.leavewhenempty.$invalid}">\n								<label class="control-label">{{\'APPLICATION_LEAVEWHENEMPTY\' | translate}}</label>\n								<ui-select multiple data-ng-model="queue.leavewhenempty" name="leavewhenempty" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\',\'strict\',\'loose\',\'paused\',\'penalty\',\'inuse\',\'ringing\',\'unavailable\',\'invalid\',\'unknown\',\'wrapup\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_LEAVEWHENEMPTY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.leavewhenempty.$touched || forms.general.$submitted) && forms.general.leavewhenempty.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END LEAVEWHENEMPTY -->\n\n							<!-- START ANNOUNCE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.announce.$touched || forms.general.$submitted) && forms.general.announce.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANNOUNCE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.announce" name="announce" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in sounds | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_ANNOUNCE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.announce.$touched || forms.general.$submitted) && forms.general.announce.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ANNOUNCE -->\n						</div>\n					</div>\n					<!-- START DESCRIPTION -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n						<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"></textarea>\n					</div>\n					<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n\n					<div class="tab-pane" id="tab_1_2">\n						<form name="forms.announce" data-ng-submit="forms.announce.$valid && updateVoiceQueue()" novalidate>\n							<div class="row">\n								<div class="col-md-12">\n							<!-- START PERIODIC_ANNOUNCE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.periodic_announce.$touched || forms.announce.$submitted) && forms.announce.periodic_announce.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PERIODIC_ANNOUNCE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select multiple data-ng-model="queue.periodic_announce" name="periodic_announce" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in periodicAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_PERIODIC_ANNOUNCE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.periodic_announce.$touched || forms.announce.$submitted) && forms.announce.periodic_announce.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PERIODIC_ANNOUNCE -->\n						</div>\n					</div>\n							<div class="row">\n								<div class="col-md-6">\n							<p><h3>{{\'APPLICATION_SETTINGS\' | translate}}</h3></p>\n							<!-- START ANNOUNCE_FREQUENCY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_frequency.$touched || forms.announce.$submitted) && forms.announce.announce_frequency.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANNOUNCE_FREQUENCY\' | translate}}</label>\n								<input type="number" min="0" name="announce_frequency" placeholder="{{\'APPLICATION_ANNOUNCE_FREQUENCY\' | translate}}" class="form-control" data-ng-model="queue.announce_frequency" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_ANNOUNCE_FREQUENCY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.announce_frequency.$touched || forms.announce.$submitted) && forms.announce.announce_frequency.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ANNOUNCE_FREQUENCY -->\n\n							<!-- START MIN_ANNOUNCE_FREQUENCY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.min_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.min_announce_frequency.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MIN_ANNOUNCE_FREQUENCY\' | translate}}</label>\n								<input type="number" min="0" name="min_announce_frequency" placeholder="{{\'APPLICATION_MIN_ANNOUNCE_FREQUENCY\' | translate}}" class="form-control" data-ng-model="queue.min_announce_frequency" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MIN_ANNOUNCE_FREQUENCY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.min_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.min_announce_frequency.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MIN_ANNOUNCE_FREQUENCY -->\n\n							<!-- START PERIODIC_ANNOUNCE_FREQUENCY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.periodic_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.periodic_announce_frequency.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PERIODIC_ANNOUNCE_FREQUENCY\' | translate}}</label>\n								<input type="number" min="0" name="periodic_announce_frequency" placeholder="{{\'APPLICATION_PERIODIC_ANNOUNCE_FREQUENCY\' | translate}}" class="form-control" data-ng-model="queue.periodic_announce_frequency"/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_PERIODIC_ANNOUNCE_FREQUENCY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.periodic_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.periodic_announce_frequency.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PERIODIC_ANNOUNCE_FREQUENCY -->\n\n							<!-- START RANDOM_PERIODIC_ANNOUNCE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.random_periodic_announce.$touched || forms.announce.$submitted) && forms.announce.random_periodic_announce.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RANDOM_PERIODIC_ANNOUNCE\' | translate}}</label>\n								<ui-select data-ng-model="queue.random_periodic_announce" name="random_periodic_announce" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_RANDOM_PERIODIC_ANNOUNCE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.random_periodic_announce.$touched || forms.announce.$submitted) && forms.announce.random_periodic_announce.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RANDOM_PERIODIC_ANNOUNCE -->\n\n							<!-- START ANNOUNCE_HOLDTIME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_holdtime.$touched || forms.announce.$submitted) && forms.announce.announce_holdtime.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANNOUNCE_HOLDTIME\' | translate}}</label>\n								<ui-select data-ng-model="queue.announce_holdtime" name="announce_holdtime" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\',\'once\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n									</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_ANNOUNCE_HOLDTIME\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.announce_holdtime.$touched || forms.announce.$submitted) && forms.announce.announce_holdtime.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ANNOUNCE_HOLDTIME -->\n\n							<!-- START ANNOUNCE_POSITION -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_position.$touched || forms.announce.$submitted) && forms.announce.announce_position.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANNOUNCE_POSITION\' | translate}}</label>\n								<ui-select data-ng-model="queue.announce_position" name="announce_position" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\',\'limit\',\'more\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_ANNOUNCE_POSITION\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.announce_position.$touched || forms.announce.$submitted) && forms.announce.announce_position.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ANNOUNCE_POSITION -->\n\n							<!-- START ANNOUNCE_POSITION_LIMIT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_position_limit.$touched || forms.announce.$submitted) && forms.announce.announce_position_limit.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANNOUNCE_POSITION_LIMIT\' | translate}}</label>\n								<input type="number" min="0" name="announce_position_limit" placeholder="{{\'APPLICATION_ANNOUNCE_POSITION_LIMIT\' | translate}}" class="form-control" data-ng-model="queue.announce_position_limit"/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_ANNOUNCE_POSITION_LIMIT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.announce_position_limit.$touched || forms.announce.$submitted) && forms.announce.announce_position_limit.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ANNOUNCE_POSITION_LIMIT -->\n\n							<!-- START REPORTHOLDTIME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.reportholdtime.$touched || forms.announce.$submitted) && forms.announce.reportholdtime.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REPORTHOLDTIME\' | translate}}</label>\n								<ui-select data-ng-model="queue.reportholdtime" name="reportholdtime" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_REPORTHOLDTIME\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.reportholdtime.$touched || forms.announce.$submitted) && forms.announce.reportholdtime.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END REPORTHOLDTIME -->\n\n						</div>\n							<div class="col-md-6">\n								<p><h3>{{\'APPLICATION_SOUNDS\' | translate}}</h3></p>\n								<!-- START QUEUE_REPORTHOLD -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_reporthold.$touched || forms.announce.$submitted) && forms.announce.queue_reporthold.$invalid}">\n									<label class="control-label">{{\'APPLICATION_QUEUE_REPORTHOLD\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="queue.queue_reporthold" name="queue_reporthold" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n										<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n											<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span class="help-block">\n										{{ \'DESCRIPTION_QUEUE_REPORTHOLD\' | translate }}\n									</span>\n									<span data-ng-show="(forms.announce.queue_reporthold.$touched || forms.announce.$submitted) && forms.announce.queue_reporthold.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END QUEUE_REPORTHOLD -->\n\n								<!-- START QUEUE_YOUARENEXT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_youarenext.$touched || forms.announce.$submitted) && forms.announce.queue_youarenext.$invalid}">\n									<label class="control-label">{{\'APPLICATION_QUEUE_YOUARENEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="queue.queue_youarenext" name="queue_youarenext" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n										<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n											<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span class="help-block">\n										{{ \'DESCRIPTION_QUEUE_YOUARENEXT\' | translate }}\n									</span>\n									<span data-ng-show="(forms.announce.queue_youarenext.$touched || forms.announce.$submitted) && forms.announce.queue_youarenext.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END QUEUE_YOUARENEXT -->\n\n							<!-- START QUEUE_THEREARE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_thereare.$touched || forms.announce.$submitted) && forms.announce.queue_thereare.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_THEREARE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_thereare" name="queue_thereare" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_THEREARE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_thereare.$touched || forms.announce.$submitted) && forms.announce.queue_thereare.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_THEREARE -->\n\n							<!-- START QUEUE_CALLSWAITING -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_callswaiting.$touched || forms.announce.$submitted) && forms.announce.queue_callswaiting.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_CALLSWAITING\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_callswaiting" name="queue_callswaiting" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_CALLSWAITING\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_callswaiting.$touched || forms.announce.$submitted) && forms.announce.queue_callswaiting.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_CALLSWAITING -->\n\n							<!-- START QUEUE_HOLDTIME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_holdtime.$touched || forms.announce.$submitted) && forms.announce.queue_holdtime.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_HOLDTIME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_holdtime" name="queue_holdtime" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_HOLDTIME\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_holdtime.$touched || forms.announce.$submitted) && forms.announce.queue_holdtime.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_HOLDTIME -->\n\n							<!-- START QUEUE_MINUTES -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_minutes.$touched || forms.announce.$submitted) && forms.announce.queue_minutes.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_MINUTES\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_minutes" name="queue_minutes" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MINUTES\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_minutes.$touched || forms.announce.$submitted) && forms.announce.queue_minutes.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_MINUTES -->\n\n							<!-- START QUEUE_MINUTE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_minute.$touched || forms.announce.$submitted) && forms.announce.queue_minute.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_MINUTE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_minute" name="queue_minute" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MINUTE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_minute.$touched || forms.announce.$submitted) && forms.announce.queue_minute.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_MINUTE -->\n\n							<!-- START QUEUE_SECONDS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_seconds.$touched || forms.announce.$submitted) && forms.announce.queue_seconds.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_SECONDS\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_seconds" name="queue_seconds" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_SECONDS\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_seconds.$touched || forms.announce.$submitted) && forms.announce.queue_seconds.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_SECONDS -->\n\n							<!-- START QUEUE_THANKYOU -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_thankyou.$touched || forms.announce.$submitted) && forms.announce.queue_thankyou.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_THANKYOU\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_thankyou" name="QUEUE_THANKYOU" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_THANKYOU\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_thankyou.$touched || forms.announce.$submitted) && forms.announce.queue_thankyou.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_THANKYOU -->\n\n						</div>\n					</div>\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n					<!-- ADVANCED TAB -->\n					<div class="tab-pane" id="tab_1_3">\n						<form name="forms.advanced" data-ng-submit="forms.advanced.$valid && updateVoiceQueue()" novalidate>\n\n							<div class="row">\n								<div class="col-md-6">\n\n							<!-- START AUTOPAUSE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.autopause.$touched || forms.advanced.$submitted) && forms.advanced.autopause.$invalid}">\n								<label class="control-label">{{\'APPLICATION_AUTOPAUSE\' | translate}}</label>\n								<ui-select data-ng-model="queue.autopause" name="autopause" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\',\'all\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_AUTOPAUSE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.autopause.$touched || forms.advanced.$submitted) && forms.advanced.autopause.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END AUTOPAUSE -->\n\n							<!-- START RINGINUSE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.ringinuse.$touched || forms.advanced.$submitted) && forms.advanced.ringinuse.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RINGINUSE\' | translate}}</label>\n								<ui-select data-ng-model="queue.ringinuse" name="ringinuse" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_RINGINUSE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.ringinuse.$touched || forms.advanced.$submitted) && forms.advanced.ringinuse.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RINGINUSE -->\n\n							<!-- START MEMBER_DELAY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.memberdelay.$touched || forms.advanced.$submitted) && forms.advanced.memberdelay.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MEMBER_DELAY\' | translate}}</label>\n								<input type="number" min="0" name="memberdelay" placeholder="{{\'APPLICATION_MEMBER_DELAY\' | translate}}" class="form-control" data-ng-model="queue.memberdelay" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MEMBER_DELAY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.memberdelay.$touched || forms.advanced.$submitted) && forms.advanced.memberdelay.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MEMBER_DELAY -->\n						</div>\n							<div class="col-md-6">\n\n							<!-- START TIMEOUTRESTART -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.timeoutrestart.$touched || forms.advanced.$submitted) && forms.advanced.timeoutrestart.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TIMEOUTRESTART\' | translate}}</label>\n								<ui-select data-ng-model="queue.timeoutrestart" name="timeoutrestart" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_TIMEOUTRESTART\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.timeoutrestart.$touched || forms.advanced.$submitted) && forms.advanced.timeoutrestart.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TIMEOUTRESTART -->\n\n							<!-- START MONITOR_FORMAT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.monitor_format.$touched || forms.advanced.$submitted) && forms.advanced.monitor_format.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MONITOR_FORMAT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.monitor_format" name="monitor_format" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="monFormat.value as monFormat in monitorFormats | filter: $select.search">\n										<div ng-bind-html="monFormat.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MONITOR_FORMAT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.monitor_format.$touched || forms.advanced.$submitted) && forms.advanced.monitor_format.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MONITOR_FORMAT -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.context.$touched || forms.advanced.$submitted) && forms.advanced.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}</label>\n								<ui-select data-ng-model="queue.context" name="context" theme="bootstrap">\n									<ui-select-match allow-clear placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.context.$touched || forms.advanced.$submitted) && forms.advanced.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n						</div>\n					</div>\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
-a.put("app/voice/queue/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-layers"></i>\n				<a href="/voice/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/voice/queues/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-layers font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_QUEUE\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.queue.$valid)">\n			    <form name="forms.queue" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.queue.name.$touched || forms.queue.$submitted) && forms.queue.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.queue.name.$touched || forms.queue.$submitted) && forms.queue.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n			      <!-- START STRATEGY -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.queue.strategy.$touched || forms.queue.$submitted) && forms.queue.strategy.$invalid}">\n							<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n								<ui-select-choices repeat="strategy in [\'ringall\', \'leastrecent\', \'fewestcalls\', \'random\', \'rrmemory\', \'linear\', \'wrandom\', \'rrordered\'] | filter: $select.search">\n									<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_QUEUE_STRATEGY\' | translate }}\n							</span>\n							<span data-ng-show="(forms.queue.strategy.$touched || forms.queue.$submitted) && forms.queue.strategy.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n			      <!-- END STRATEGY -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n\n\n			      <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/realtime/view/agent/agent.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n	<div class="col-md-12">\n	 <div ng-show="selected">Selection from a modal: {{ selected }}</div>\n		<!-- BEGIN TABLE -->\n			<table st-table="displayedGroups" st-safe-src="groups" class="table table-striped table-bordered table-hover">\n				<div class="table-responsive">\n				  <thead>\n						<tr>\n							<th colspan="10">\n								<div class="row">\n									<div class="col-md-6">\n										<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n												<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n									</div>\n									<div class="col-md-6">\n										<!-- <div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div> -->\n									</div>\n								</div>\n							</th>\n						</tr>\n						<tr>\n							<th st-sort="memebername" colspan="3">{{ \'APPLICATION_AGENT\' | translate }}</th>\n					    <th st-sort="queue">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_LOGIN\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_PAUSE\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_INCOMING_CALL\' | translate }}</th>\n							<th>{{ \'APPLICATION_SERVED\' | translate }}</th>\n							<th colspan="2"></th>\n					  </tr>\n				  </thead>\n					<tbody>\n				    <tr data-ng-repeat-start="group in displayedGroups">\n							<td rowspan="{{group.queues.length}}" align="center" style="vertical-align:middle">{{group.membername}}</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<span data-ng-class="{\'icon-like font-green\': queue.lastevent != \'called\' && queue.lastevent != \'connect\' ,\'icon-bell font-yellow\': queue.lastevent == \'called\', \'icon-call-in font-red\': queue.lastevent == \'connect\'}"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<span class="icon-cup" data-ng-class="queue.paused ? \'font-red\' : \'font-green\'"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								{{queue.queue}}\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{queue.loggedAt}}" data-ng-show="queue.logged">\n									April 1, 2014\n								</time>\n								 <span class="badge badge-empty badge-danger" data-ng-show="!queue.logged"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{queue.pausedAt}}" data-ng-show="queue.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{queue.paused ? \'(\' + queue.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{queue.lastcall}}" data-ng-show="queue.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								{{queue.callstaken}}\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<span data-ng-show="queue.logged" class="icon-cup pull-left" style="cursor:pointer;" ng-click="pause(null, queue)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" ng-click="remove(null, queue)"> </span>\n							</td>\n							<td rowspan="{{group.queues.length}}" align="center" style="vertical-align:middle">\n								<span data-ng-show="group.queues.length > 1" class="icon-cup pull-left" style="cursor:pointer;" ng-click="pause(null, group.queues)"> </span>\n								<span class="icon-plus font-green" style="cursor:pointer;" ng-click="add(null, group.queues)"> </span>\n								<span data-ng-show="group.queues.length > 1" class="icon-close font-red pull-right" style="cursor:pointer;" ng-click="remove(null, group.queues)"></span>\n							</td>\n				    </tr>\n						<tr data-ng-repeat="queue in group.queues" data-ng-if="$middle">\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$middle" align="center">\n								<span data-ng-class="{\'icon-like font-green\': queue.lastevent != \'called\' && queue.lastevent != \'connect\' ,\'icon-bell font-yellow\': queue.lastevent == \'called\', \'icon-call-in font-red\': queue.lastevent == \'connect\'}"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$middle" align="center">\n								<span class="icon-cup" data-ng-class="queue.paused ? \'font-red\' : \'font-green\'"></span>\n							</td>\n							<td align="center">\n								{{queue.queue}}\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{queue.loggedAt}}" data-ng-show="queue.logged">\n									April 1, 2014\n								</time>\n								<span class="badge badge-empty badge-danger" data-ng-show="!queue.logged"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$middle" align="center">\n								<time is="relative-time" datetime="{{queue.pausedAt}}" data-ng-show="queue.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{queue.paused ? \'(\' + queue.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{queue.lastcall}}" data-ng-show="queue.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$middle" align="center">\n								{{queue.callstaken}}\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$middle" align="center">\n								<span data-ng-show="queue.logged" class="icon-cup pull-left" style="cursor:pointer;" ng-click="pause(null, queue)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" ng-click="remove(null, queue)"> </span>\n							</td>\n						</tr>\n						<tr data-ng-repeat="queue in group.queues" data-ng-if="group.queues.length > 1 && $last" data-ng-repeat-end>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$last" align="center">\n								<span data-ng-class="{\'icon-like font-green\': queue.lastevent != \'called\' && queue.lastevent != \'connect\' ,\'icon-bell font-yellow\': queue.lastevent == \'called\', \'icon-call-in font-red\': queue.lastevent == \'connect\'}"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$last" align="center">\n								<span class="icon-cup" data-ng-class="queue.paused ? \'font-red\': \'font-green\'"></span>\n							</td>\n							<td align="center">\n								{{queue.queue}}\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{queue.loggedAt}}" data-ng-show="queue.logged">\n									April 1, 2014\n								</time>\n								<span class="badge badge-empty badge-danger" data-ng-show="!queue.logged"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$last" align="center">\n								<time is="relative-time" datetime="{{queue.pausedAt}}" data-ng-show="queue.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{queue.paused ? \'(\' + queue.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{queue.lastcall}}" data-ng-show="queue.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$last" align="center">\n								{{queue.callstaken}}\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$last" align="center">\n								<span data-ng-show="queue.logged" class="icon-cup pull-left" style="cursor:pointer;" ng-click="pause(null, queue)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" ng-click="remove(null, queue)"> </span>\n							</td>\n						</tr>\n						<tr data-ng-hide="displayedGroups.length">\n							<td colspan="9" style="text-align:center;">\n								<i>No agents available</i>\n							</td>\n						</tr>\n				  </tbody>\n				  <tfoot>\n						<tr>\n							<td colspan="1">\n								<div class="input-icon right">\n									<i class="fa fa-search"></i>\n									<input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n								</div>\n							<td colspan="9"></td>\n					  </tr>\n				    <tr>\n				      <td colspan="10" class="text-center">\n								<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n				      </td>\n				    </tr>\n				  </tfoot>\n				</div>\n			</table>\n		<!-- END TABLE -->\n	</div>\n\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/realtime/view/agent/pause.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_PAUSE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item" data-ng-hide="data.length">\n				 {{ \'APPLICATION_QUEUE\' | translate }}: <b class="pull-right">{{ selected.queue }}</b>\n			</li>\n      <li class="list-group-item">\n				 {{ \'APPLICATION_AGENT\' | translate }}: <b class="pull-right">{{ selected.membername }}</b>\n			</li>\n      <li class="list-group-item">\n        <div class="btn-group">\n          <ui-select ng-model="selected.item" theme="bootstrap" ng-disabled="disabled" class="btn input-xlarge pull-left">\n            <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected}}</ui-select-match>\n            <ui-select-choices repeat="item in items | filter: $select.search">\n              <div ng-bind-html="item | highlight: $select.search"></div>\n            </ui-select-choices>\n          </ui-select>\n          <button class="btn btn-success pull-right" type="button" ng-click="ok(true)" style="margin-top: 7px;">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n        </div>\n			</li>\n		</ul>\n	</div>\n  <button data-ng-show="(data | isArray) ? (data | where: {paused: true}).length : data.paused " class="btn btn-danger btn-block" type="button" ng-click="ok(false, data.queue)">Exit</button>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/agent/queue.modal.add.html",'<div class="modal-header" data-ng-init="initAdd()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info" data-ng-show="selected.queue">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="queues.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.queue" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_QUEUE\' | translate}}">{{$select.selected.name}}</ui-select-match>\n              <ui-select-choices repeat="queue.name as queue in queues | filter: $select.search">\n                <div ng-bind-html="queue.name | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PENALTY\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="number" min="0" max="10" placeholder="{{\'APPLICATION_PENALTY\' | translate}}" class="form-control" data-ng-model="selected.penalty"/>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PAUSE\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.paused" btn-checkbox> {{ selected.paused ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="selected.paused">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_REASON\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.reason" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_REASON\' | translate}}">{{$select.selected}}</ui-select-match>\n              <ui-select-choices repeat="pause in pauses | filter: $select.search">\n                <div ng-bind-html="pause | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGIN\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.login" btn-checkbox> {{ selected.login ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n		</ul>\n    <!-- End List group -->\n  </div>\n  <div class="note note-warning" data-ng-hide="selected.queue">\n    <h4 class="block">Warning!</h4>\n    <p>\n       {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\n    </p>\n  </div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="okAdd()" data-ng-show="selected.queue">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/agent/queue.modal.remove.html",'<div class="modal-header" data-ng-init="initRemove()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_REMOVAL\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item" data-ng-hide="data.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="data.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGOUT\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.logout" btn-checkbox> {{ selected.logout ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n            <span class="help-block">{{ \'MESSAGE_PERMANENT_REMOVAL_FROM_QUEUE\' | translate }}. </span>\n          </div>\n				</div>\n      </li>\n		</ul>\n	</div>\n  <button class="btn btn-danger btn-block" type="button" ng-click="okRemove()">{{ \'APPLICATION_REMOVE\' | translate }}</button>\n</div>\n<div class="modal-footer">\n  <!-- <button class="btn btn-success" type="button" ng-click="okRemove()">{{ \'APPLICATION_CONFIRM\' | translate }}</button> -->\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/areport/report.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initReport()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedAgents" st-safe-src="agents" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="11">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n											<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="calleridname">{{ \'APPLICATION_CALLER\' | translate }}</th>\n						<th st-sort="agentcalledAt">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n						<th st-sort="agentconnectAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n						<th st-sort="agentcompleteAt">{{ \'APPLICATION_COMPLETED_AT\' | translate }}</th>\n						<th st-sort="reason">{{ \'APPLICATION_REASON\' | translate }}</th>\n						<th st-sort="holdtime">{{ \'APPLICATION_HOLDTIME\' | translate }}</th>\n				    <th st-sort="talktime">{{ \'APPLICATION_TALKTIME\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="agent in displayedAgents">\n						<td><span data-ng-class="{\'icon-call-in font-yellow\': agent.lastevent === \'called\',\n							\'icon-phone font-blue\': agent.lastevent === \'connect\',\n							\'icon-call-end font-green\': agent.lastevent === \'complete\',\n							\'icon-call-end font-red\': agent.lastevent === \'answered_elsewhere\'}"></span>\n						</td>\n						<td>{{agent.uniqueid}}</td>\n						<td>{{agent.queue}}</td>\n						<td>{{agent.destcalleridname ? agent.destcalleridname + \' [\' + agent.membername + \']\' : agent.membername }}</td>\n						<td>{{agent.calleridname ? agent.calleridname + \' [\' + agent.calleridnum + \']\' : agent.calleridnum }}</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentcalledAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentconnectAt}}" data-ng-show="agent.agentconnectAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentcompleteAt}}" data-ng-show="agent.agentcompleteAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							{{agent.reason | uppercase}}\n						</td>\n						<td>{{agent.holdtime || 0 | VoiceRealtimeViewAgentReportFilter | date:\'HH:mm:ss\'}}</td>\n			      <td>{{agent.talktime || 0 | VoiceRealtimeViewAgentReportFilter | date:\'HH:mm:ss\'}}</td>\n			    </tr>\n					<tr data-ng-hide="displayedAgents.length">\n						<td colspan="11" style="text-align:center;">\n							<i>No agents available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="calleridnum" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CALLER\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="7"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="11" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/realtime/view/qreport/report.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initReport()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedQueues" st-safe-src="queues" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="10">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.queuesByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="queueByPage in queuesByPage | filter: $select.search">\n											<div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search"/>\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="calleridname">{{ \'APPLICATION_CALLER\' | translate }}</th>\n						<th st-sort="queuecallerjoinAt">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n						<th st-sort="queuecallerleaveAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n						<th st-sort="queuecallerabandonAt">{{ \'APPLICATION_ABANDONED_AT\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="queue in displayedQueues">\n						<td><span data-ng-class="{\'icon-call-in font-yellow\': queue.queuecallerjoinAt && !queue.queuecallerleaveAt,\n							\'icon-phone font-blue\': queue.queuecallerjoinAt && queue.queuecallerleaveAt,\n							\'icon-call-end font-red\': queue.queuecallerjoinAt && queue.queuecallerleaveAt && queue.queuecallerabandonAt}"></span>\n						</td>\n						<td>{{queue.uniqueid}}</td>\n						<td>{{queue.queue}}</td>\n						<td>{{queue.connectedlinename ? queue.connectedlinename + \' [\' + queue.connectedlinenum + \']\' : queue.connectedlinenum }}</td>\n						<td>{{queue.calleridname ? queue.calleridname + \' [\' + queue.calleridnum + \']\' : queue.calleridnum }}</td>\n						<td>\n							<time is="relative-time" datetime="{{queue.queuecallerjoinAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{queue.queuecallerleaveAt}}" data-ng-show="queue.queuecallerleaveAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{queue.queuecallerabandonAt}}" data-ng-show="queue.queuecallerabandonAt">\n								April 1, 2014\n							</time>\n						</td>\n			    </tr>\n					<tr data-ng-hide="displayedQueues.length">\n						<td colspan="10" style="text-align:center;">\n							<i>No queues available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="connectedlinename" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="calleridnum" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CALLER\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="6"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="10" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.queuesByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/voice/realtime/view/queue/pause.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_PAUSE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n				 {{ \'APPLICATION_QUEUE\' | translate }}: <b class="pull-right">{{ selected.queue }}</b>\n			</li>\n      <li class="list-group-item" data-ng-hide="data.length">\n				 {{ \'APPLICATION_AGENT\' | translate }}: <b class="pull-right">{{ selected.membername }}</b>\n			</li>\n      <li class="list-group-item">\n        <div class="btn-group">\n          <ui-select ng-model="selected.item" theme="bootstrap" ng-disabled="disabled" class="btn input-xlarge pull-left">\n            <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected}}</ui-select-match>\n            <ui-select-choices repeat="item in items | filter: $select.search">\n              <div ng-bind-html="item | highlight: $select.search"></div>\n            </ui-select-choices>\n          </ui-select>\n          <button class="btn btn-success pull-right" type="button" ng-click="ok(true)" style="margin-top: 7px;">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n        </div>\n			</li>\n		</ul>\n	</div>\n  <button data-ng-show="(data | isArray) ? (data | where: {paused: true}).length : data.paused " class="btn btn-danger btn-block" type="button" ng-click="ok(false, data.queue)">Exit</button>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/queue/queue.add.modal.html",'<div class="modal-header" data-ng-init="initAdd()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="queues.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.queue" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_QUEUE\' | translate}}">{{$select.selected.name}}</ui-select-match>\n              <ui-select-choices repeat="queue.name as queue in queues | filter: $select.search">\n                <div ng-bind-html="queue.name | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PENALTY\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="number" min="0" max="10" placeholder="{{\'APPLICATION_PENALTY\' | translate}}" class="form-control" data-ng-model="selected.penalty"/>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PAUSE\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.paused" ui-btn-checkbox> {{ selected.paused ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="selected.paused">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_REASON\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.reason" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_REASON\' | translate}}">{{$select.selected}}</ui-select-match>\n              <ui-select-choices repeat="pause in pauses | filter: $select.search">\n                <div ng-bind-html="pause | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGIN\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.login" ui-btn-checkbox> {{ selected.login ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n		</ul>\n	</div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="okAdd()">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/queue/queue.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initQueues()">\n	<div class="col-md-12">\n	 <div ng-show="selected">Selection from a modal: {{ selected }}</div>\n		<!-- BEGIN TABLE -->\n			<table st-table="displayedGroups" st-safe-src="groups" class="table table-striped table-bordered table-hover">\n				<div class="table-responsive">\n				  <thead>\n						<tr>\n							<th colspan="10">\n								<div class="row">\n									<div class="col-md-6">\n										<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n												<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n									</div>\n									<div class="col-md-6">\n										<!-- <div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div> -->\n									</div>\n								</div>\n							</th>\n						</tr>\n						<tr>\n							<th st-sort="memebername" colspan="3">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n					    <th st-sort="agent">{{ \'APPLICATION_AGENT\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_LOGIN\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_PAUSE\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_INCOMING_CALL\' | translate }}</th>\n							<th>{{ \'APPLICATION_SERVED\' | translate }}</th>\n							<th colspan="2"></th>\n					  </tr>\n				  </thead>\n					<tbody>\n				    <tr data-ng-repeat-start="group in displayedGroups">\n							<td rowspan="{{group.agents.length}}" align="center" style="vertical-align:middle">{{group.queue}}</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<span data-ng-class="{\'icon-like font-green\': agent.lastevent != \'called\' && agent.lastevent != \'connect\' ,\'icon-bell font-yellow\': agent.lastevent == \'called\', \'icon-call-in font-red\': agent.lastevent == \'connect\'}"></span>\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<span class="icon-cup" data-ng-class="agent.paused ? \'font-red\' : \'font-green\'"></span>\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								{{agent.membername}}\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{agent.loggedAt}}" data-ng-show="agent.logged">\n									April 1, 2014\n								</time>\n								 <span class="badge badge-empty badge-danger" data-ng-show="!agent.logged"></span>\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{agent.pausedAt}}" data-ng-show="agent.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{agent.paused ? \'(\' + agent.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{agent.lastcall}}" data-ng-show="agent.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								{{agent.callstaken}}\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<span data-ng-show="agent.logged" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, agent)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, agent)"> </span>\n							</td>\n							<td rowspan="{{group.agents.length}}" align="center" style="vertical-align:middle">\n								<span data-ng-show="group.agents.length > 1" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, group.agents)"> </span>\n								<span class="icon-plus font-green" style="cursor:pointer;" data-ng-click="add(null, group.agents)"> </span>\n								<span data-ng-show="group.agents.length > 1" class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, group.agents)"></span>\n							</td>\n				    </tr>\n						<tr data-ng-repeat="agent in group.agents" data-ng-if="$middle">\n							<td align="center">\n								<span data-ng-class="{\'icon-like font-green\': agent.lastevent != \'called\' && agent.lastevent != \'connect\' ,\'icon-bell font-yellow\': agent.lastevent == \'called\', \'icon-call-in font-red\': agent.lastevent == \'connect\'}"></span>\n							</td>\n							<td align="center">\n								<span class="icon-cup" data-ng-class="agent.paused ? \'font-red\' : \'font-green\'"></span>\n							</td>\n							<td align="center">\n								{{agent.membername}}\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.loggedAt}}" data-ng-show="agent.logged">\n									April 1, 2014\n								</time>\n								<span class="badge badge-empty badge-danger" data-ng-show="!agent.logged"></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.pausedAt}}" data-ng-show="agent.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{agent.paused ? \'(\' + agent.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.lastcall}}" data-ng-show="agent.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td align="center">\n								{{agent.callstaken}}\n							</td>\n							<td align="center">\n								<span data-ng-show="agent.logged" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, agent)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, agent)"> </span>\n							</td>\n						</tr>\n						<tr data-ng-repeat="agent in group.agents" data-ng-if="group.agents.length > 1 && $last" data-ng-repeat-end>\n							<td align="center">\n								<span data-ng-class="{\'icon-like font-green\': agent.lastevent != \'called\' && agent.lastevent != \'connect\' ,\'icon-bell font-yellow\': agent.lastevent == \'called\', \'icon-call-in font-red\': agent.lastevent == \'connect\'}"></span>\n							</td>\n							<td align="center">\n								<span class="icon-cup" data-ng-class="agent.paused ? \'font-red\': \'font-green\'"></span>\n							</td>\n							<td align="center">\n								{{agent.membername}}\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.loggedAt}}" data-ng-show="agent.logged">\n									April 1, 2014\n								</time>\n								<span class="badge badge-empty badge-danger" data-ng-show="!agent.logged"></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.pausedAt}}" data-ng-show="agent.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{agent.paused ? \'(\' + agent.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.lastcall}}" data-ng-show="agent.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td align="center">\n								{{agent.callstaken}}\n							</td>\n							<td align="center">\n								<span data-ng-show="agent.logged" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, agent)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, agent)"> </span>\n							</td>\n						</tr>\n						<tr data-ng-hide="displayedGroups.length">\n							<td colspan="9" style="text-align:center;">\n								<i>No agents available</i>\n							</td>\n						</tr>\n				  </tbody>\n				  <tfoot>\n						<tr>\n							<td colspan="1">\n								<div class="input-icon right">\n									<i class="fa fa-search"></i>\n									<input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n								</div>\n							<td colspan="9"></td>\n					  </tr>\n				    <tr>\n				      <td colspan="10" class="text-center">\n								<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n				      </td>\n				    </tr>\n				  </tfoot>\n				</div>\n			</table>\n		<!-- END TABLE -->\n	</div>\n\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/realtime/view/queue/queue.modal.add.html",'<div class="modal-header" data-ng-init="initAdd()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info" data-ng-show="selected.queue">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="agents.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.agent" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_AGENT\' | translate}}">{{$select.selected.name}}</ui-select-match>\n              <ui-select-choices repeat="{name: agent.name, id: agent.id} as agent in agents | filter: $select.search">\n                <div ng-bind-html="agent.name | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PENALTY\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="number" min="0" max="10" placeholder="{{\'APPLICATION_PENALTY\' | translate}}" class="form-control" data-ng-model="selected.penalty"/>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PAUSE\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.paused" btn-checkbox> {{ selected.paused ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="selected.paused">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_REASON\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.reason" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_REASON\' | translate}}">{{$select.selected}}</ui-select-match>\n              <ui-select-choices repeat="pause in pauses | filter: $select.search">\n                <div ng-bind-html="pause | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGIN\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.login" btn-checkbox> {{ selected.login ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n		</ul>\n    <!-- End List group -->\n  </div>\n  <div class="note note-warning" data-ng-hide="selected.queue">\n    <h4 class="block">Warning!</h4>\n    <p>\n       {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\n    </p>\n  </div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="okAdd()" data-ng-show="selected.queue">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/queue/queue.modal.remove.html",'<div class="modal-header" data-ng-init="initRemove()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_REMOVAL\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row" data-ng-hide="data.length">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGOUT\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.logout" btn-checkbox> {{ selected.logout ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n            <span class="help-block">{{ \'MESSAGE_PERMANENT_REMOVAL_FROM_QUEUE\' | translate }}. </span>\n          </div>\n				</div>\n      </li>\n		</ul>\n	</div>\n  <button class="btn btn-danger btn-block" type="button" ng-click="okRemove()">{{ \'APPLICATION_REMOVE\' | translate }}</button>\n</div>\n<div class="modal-footer">\n  <!-- <button class="btn btn-success" type="button" ng-click="okRemove()">{{ \'APPLICATION_CONFIRM\' | translate }}</button> -->\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/queue/queue.remove.modal.html",'<div class="modal-header" data-ng-init="initRemove()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_REMOVAL\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-hide="data.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGOUT\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.logout" btn-checkbox> {{ selected.logout ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n            <span class="help-block">{{ \'MESSAGE_PERMANENT_REMOVAL_FROM_QUEUE\' | translate }}. </span>\n          </div>\n				</div>\n      </li>\n		</ul>\n	</div>\n  <button class="btn btn-danger btn-block" type="button" ng-click="okRemove()">{{ \'APPLICATION_REMOVE\' | translate }}</button>\n</div>\n<div class="modal-footer">\n  <!-- <button class="btn btn-success" type="button" ng-click="okRemove()">{{ \'APPLICATION_CONFIRM\' | translate }}</button> -->\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-energy"></i>\n					<a href="/voice/realtime/list">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<div>\n		    <nav class="navbar navbar-default" role="navigation">\n		        <div class="navbar-header">\n		            <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n		                <span class="sr-only">Toggle navigation</span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		            </button>\n		            <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n		        </div>\n\n		        <!-- Collect the nav links, forms, and other content for toggling -->\n		        <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n		            <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_AGENTS\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'agents\'></tree>\n		                </li>\n		            </ul>\n		            <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_QUEUES\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'queues\'></tree>\n		                </li>\n		            </ul>\n		        </div>\n		        <!-- /.navbar-collapse -->\n		    </nav>\n		</div>\n		<div ui-view></div>\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/inbound/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-call-in"></i>\n					<a href="/voice/routes/inbound/list">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-users font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="routes.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/routes/inbound/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getRoutes([\'context\', \'exten\', \'app\', \'appdata\', \'description\'])" csv-header="[\'Context\', \'Exten\', \'App\', \'Appdata\', \'Description\']" field-separator=";" filename="routes_inbound.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedRoutes" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.routesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="routeByPage in routesByPage | filter: $select.search">\n													<div ng-bind-html="routeByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(checked)" checklist-model checklist-value="id"></th>\n                <th st-sort="exten">{{ \'APPLICATION_DID\' | translate }}</th>\n								<th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="route in displayedRoutes"  class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="routes.checked" checklist-value="route.id"></td>\n								<td>{{route.exten}}</td>\n								<td>{{route.context}}</td>\n					      <td>{{route.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/inbound/view/{{route.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(route.exten,route.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedRoutes.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_ROUTES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n                <td>\n                  <div class="input-icon right">\n                    <i class="fa fa-search"></i>\n                    <input st-search="exten" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DID\' | translate | lowercase}}" class="form-control" type="search"/>\n                  </div>\n                </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.routesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/voice/route/inbound/view/view.application.html",'\n<div class="row" data-ng-init="initApplication(); getIntervals();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_NEW_APPLICATION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<div class="profile-usertitle-name">\n						{{(main.app | capitalize) || \'Application\'}}\n					</div>\n	        <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.settings.$valid)">\n							<form name="forms.settings" novalidate>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n									<!-- START APP -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="main.app" name="app" theme="bootstrap" required>\n					            <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n					            <ui-select-choices repeat="app.value as app in $application.applications| filter: $select.search">\n					              <div ng-bind-html="app.name | highlight: $select.search"></div>\n					            </ui-select-choices>\n					          </ui-select>\n										<span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END APP -->\n\n									<div id="Queue" class="app-settings" ng-slide-down="main.app == \'Queue\'" lazy-render duration="1">\n										<!-- START QUEUE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n											<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.queue" name="queue" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="queue.name as queue in items | filter: $select.search">\n													<div ng-bind-html="queue.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END QUEUE -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n											<ui-select multiple data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($item.name)}}</ui-select-match>\n												<ui-select-choices repeat="queueOpt.value as queueOpt in $application.queueOptions | filter: $select.search">\n													{{$translate.instant(queueOpt.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n\n										<!-- START URL -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END URL -->\n\n										<!-- START AUDIOFILE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n											<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}</label>\n											<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n												<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items2 | filter: $select.search">\n													<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END AUDIOFILE -->\n\n										<!-- START TIMEOUT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n											<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n											<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END TIMEOUT -->\n\n									</div>\n									<div id="Playback" class="app-settings" ng-slide-down="main.app == \'Playback\'" lazy-render duration="1">\n										<!-- START AUDIOFILE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n											<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n												<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items | filter: $select.search">\n													<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END AUDIOFILE -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n											<ui-select data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n												<ui-select-choices repeat="audioOpt.value as audioOpt in $application.audioOptions | filter: $select.search">\n													{{$translate.instant(audioOpt.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n									</div>\n									<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n										<!-- START INTERFACE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}/{{ \'APPLICATION_IDENTIFIER\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="interface" placeholder="SIP/0000" class="form-control" data-ng-model="application.interface" required>\n											<span data-ng-show="(forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid && forms.settings.interface.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END INTERFACE -->\n\n										<!-- START TIMEOUT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n											<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n											<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END TIMEOUT -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_OPTIONS\' | translate }}</label>\n											<input type="text" name="app_options" placeholder="" class="form-control" data-ng-model="application.app_options">\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n\n										<!-- START URL -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END URL -->\n									</div>\n									<div id="AGI" class="app-settings" ng-slide-down="main.app == \'AGI\'" lazy-render duration="1">\n										<!-- START PROJECT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$invalid}">\n											<label class="control-label">{{\'APPLICATION_PROJECT\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.project" name="project" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="project.name as project in items | filter: $select.search">\n													<div ng-bind-html="project.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END PROJECT -->\n\n										<!-- START URL -->\n										<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<div class="input-group">\n												<input type="text" name="url" placeholder="agi://127.0.0.1/square" class="form-control" data-ng-model="application.url" data-ng-disabled="!application.urlEnabled" data-ng-required="application.urlEnabled" rpattern="/^agi:\\/\\/(?:[0-9]{1,3}\\.){3}[0-9]{1,3}\\/square$/">\n												<span class="input-group-addon">\n													<input type="checkbox" data-ng-model="application.urlEnabled">\n												</span>\n											</div>\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.pattern" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n											</span>\n										</div> -->\n										<!-- END URL -->\n\n									</div>\n									<div id="Goto" class="app-settings" ng-slide-down="main.app == \'Goto\'" lazy-render duration="1">\n										<!-- START CONTEXT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$invalid}">\n											<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.alt_context" name="context" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="context.name as context in items | filter: $select.search">\n													<div ng-bind-html="context.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END CONTEXT -->\n\n										<!-- START EXTENSION -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_EXTENSION\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="extension" placeholder="" class="form-control" data-ng-model="application.alt_extension" required>\n											<span data-ng-show="(forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid && forms.settings.extension.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END EXTENSION -->\n\n										<!-- START PRIORITY -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_PRIORITY\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="number" name="priority" placeholder="" class="form-control" data-ng-model="application.alt_priority" required>\n											<span data-ng-show="(forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END PRIORITY -->\n									</div>\n									<div id="Hangup" class="app-settings" ng-slide-down="main.app == \'Hangup\'" lazy-render duration="1">\n										<!-- START HANGUPCAUSE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$invalid}">\n											<label class="control-label">{{\'APPLICATION_HANGUP_CAUSE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.causecode" theme="bootstrap" name="hangupCause" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n												<ui-select-choices repeat="hangupCause.value as hangupCause in $application.hangupCauses | filter: $select.search">\n													{{$translate.instant(hangupCause.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END HANGUPCAUSE -->\n									</div>\n									<div id="Set" class="app-settings" ng-slide-down="main.app == \'Set\'" lazy-render duration="1">\n										<!-- START VARIABLE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_VARIABLE\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="variable" placeholder="" class="form-control" data-ng-model="application.variable" required>\n											<span data-ng-show="(forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid && forms.settings.variable.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VARIABLE -->\n\n										<!-- START VARVALUE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_VALUE\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="varvalue" placeholder="" class="form-control" data-ng-model="application.value" required>\n											<span data-ng-show="(forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid && forms.settings.varvalue.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VARVALUE -->\n									</div>\n									<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n										<!-- START CUSTOMAPP -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n											<span data-ng-show="(forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid && forms.settings.customApp.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END CUSTOMAPP -->\n\n										<!-- START APPDATA -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n											<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n											<span data-ng-show="(forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid && forms.settings.appdata.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END APPDATA -->\n									</div>\n									<div id="Voicemail" class="app-settings" ng-slide-down="main.app == \'Voicemail\'" lazy-render duration="1">\n										<!-- START VOICEMAIL -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="voicemail" placeholder="{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}" class="form-control" data-ng-model="application.mailbox" required>\n											<span data-ng-show="(forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid && forms.settings.voicemail.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VOICEMAIL -->\n									</div>\n									<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								</form>\n								</wz-step>\n									<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n										<form name="forms.interval" novalidate>\n										<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n										<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n									<!-- START INTERVAL_TYPE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n										<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n												{{$translate.instant(intType.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END INTERVAL_TYPE -->\n									<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n											<!-- START TIME -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n												<div class="input-group input-large">\n													<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n													<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n													<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n													<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n												</div>\n											</div>\n											<!-- END TIME -->\n\n											<!-- START WEEKDAY -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n															{{$translate.instant(weekDay.name)}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n															{{$translate.instant(weekDay.name)}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END WEEKDAY -->\n\n											<!-- START MONTHDAY -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n														<ui-select-match>{{$select.selected}}</ui-select-match>\n														<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n															{{monthDay}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n														<ui-select-match>{{$select.selected}}</ui-select-match>\n														<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n															{{monthDay}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END MONTHDAY -->\n\n											<!-- START MONTH -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n															{{$translate.instant(month.name)}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n															{{$translate.instant(month.name)}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END MONTH -->\n							</div>\n\n							<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n								<!-- START INTERVALS -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n											{{$translate.instant(interval.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVALS -->\n\n							</div>\n								<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/voice/route/inbound/view/view.applicationSettings.html",'\n<div class="row" data-ng-init="initApplication();getIntervals();getApplication();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_APPLICATION_SETTINGS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="updateItem()">\n					<div class="profile-usertitle-name">\n						{{(main.app | capitalize) || \'Application\'}}\n					</div>\n	        <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.settings.$valid)">\n							<form name="forms.settings" novalidate>\n\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								<div id="Queue" class="app-settings" ng-slide-down="main.app == \'Queue\'" lazy-render duration="1">\n									<!-- START QUEUE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n										<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.queue" name="queue" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="queue.name as queue in items | filter: $select.search">\n												<div ng-bind-html="queue.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END QUEUE -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n										<ui-select multiple data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($item.name)}}</ui-select-match>\n											<ui-select-choices repeat="queueOpt.value as queueOpt in $application.queueOptions | filter: $select.search">\n												{{$translate.instant(queueOpt.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n\n									<!-- START URL -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END URL -->\n\n									<!-- START AUDIOFILE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n										<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}</label>\n										<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n											<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items2 | filter: $select.search">\n												<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END AUDIOFILE -->\n\n									<!-- START TIMEOUT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n										<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n										<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END TIMEOUT -->\n\n								</div>\n								<div id="Playback" class="app-settings" ng-slide-down="main.app == \'Playback\'" lazy-render duration="1">\n									<!-- START AUDIOFILE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n										<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n											<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items | filter: $select.search">\n												<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END AUDIOFILE -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n										<ui-select data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="audioOpt.value as audioOpt in $application.audioOptions | filter: $select.search">\n												{{$translate.instant(audioOpt.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n								</div>\n								<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n									<!-- START INTERFACE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}/{{ \'APPLICATION_IDENTIFIER\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="interface" placeholder="SIP/0000" class="form-control" data-ng-model="application.interface" required>\n										<span data-ng-show="(forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid && forms.settings.interface.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END INTERFACE -->\n\n									<!-- START TIMEOUT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n										<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n										<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END TIMEOUT -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_OPTIONS\' | translate }}</label>\n										<input type="text" name="app_options" placeholder="" class="form-control" data-ng-model="application.app_options">\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n\n									<!-- START URL -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END URL -->\n								</div>\n								<div id="AGI" class="app-settings" ng-slide-down="main.app == \'AGI\'" lazy-render duration="1">\n									<!-- START PROJECT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$invalid}">\n										<label class="control-label">{{\'APPLICATION_PROJECT\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.project" name="project" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="project.name as project in items | filter: $select.search">\n												<div ng-bind-html="project.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END PROJECT -->\n\n									<!-- START URL -->\n									<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<div class="input-group">\n											<input type="text" name="url" placeholder="agi://127.0.0.1/square" class="form-control" data-ng-model="application.url" data-ng-disabled="!application.urlEnabled" data-ng-required="application.urlEnabled" rpattern="/^agi:\\/\\/(?:[0-9]{1,3}\\.){3}[0-9]{1,3}\\/square$/">\n											<span class="input-group-addon">\n												<input type="checkbox" data-ng-model="application.urlEnabled">\n											</span>\n										</div>\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.pattern" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n										</span>\n									</div> -->\n									<!-- END URL -->\n\n								</div>\n								<div id="Goto" class="app-settings" ng-slide-down="main.app == \'Goto\'" lazy-render duration="1">\n									<!-- START CONTEXT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$invalid}">\n										<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.alt_context" name="context" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="context.name as context in items | filter: $select.search">\n												<div ng-bind-html="context.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END CONTEXT -->\n\n									<!-- START EXTENSION -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_EXTENSION\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="extension" placeholder="" class="form-control" data-ng-model="application.alt_extension" required>\n										<span data-ng-show="(forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid && forms.settings.extension.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END EXTENSION -->\n\n									<!-- START PRIORITY -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_PRIORITY\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="number" name="priority" placeholder="" class="form-control" data-ng-model="application.alt_priority" required>\n										<span data-ng-show="(forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END PRIORITY -->\n								</div>\n								<div id="Hangup" class="app-settings" ng-slide-down="main.app == \'Hangup\'" lazy-render duration="1">\n									<!-- START HANGUPCAUSE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$invalid}">\n										<label class="control-label">{{\'APPLICATION_HANGUP_CAUSE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.causecode" theme="bootstrap" name="hangupCause" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="hangupCause.value as hangupCause in $application.hangupCauses | filter: $select.search">\n												{{$translate.instant(hangupCause.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END HANGUPCAUSE -->\n								</div>\n								<div id="Set" class="app-settings" ng-slide-down="main.app == \'Set\'" lazy-render duration="1">\n									<!-- START VARIABLE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_VARIABLE\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="variable" placeholder="" class="form-control" data-ng-model="application.variable" required>\n										<span data-ng-show="(forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid && forms.settings.variable.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VARIABLE -->\n\n									<!-- START VARVALUE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_VALUE\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="varvalue" placeholder="" class="form-control" data-ng-model="application.value" required>\n										<span data-ng-show="(forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid && forms.settings.varvalue.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VARVALUE -->\n								</div>\n								<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n									<!-- START CUSTOMAPP -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n										<span data-ng-show="(forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid && forms.settings.customApp.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END CUSTOMAPP -->\n\n									<!-- START APPDATA -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n										<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n										<span data-ng-show="(forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid && forms.settings.appdata.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END APPDATA -->\n								</div>\n								<div id="Voicemail" class="app-settings" ng-slide-down="main.app == \'Voicemail\'" lazy-render duration="1">\n									<!-- START VOICEMAIL -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="voicemail" placeholder="{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}" class="form-control" data-ng-model="application.mailbox" required>\n										<span data-ng-show="(forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid && forms.settings.voicemail.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VOICEMAIL -->\n								</div>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n							</wz-step>\n								<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n									<form name="forms.interval" novalidate>\n										<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n										<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								<!-- START INTERVAL_TYPE -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n											{{$translate.instant(intType.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVAL_TYPE -->\n								<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n										<!-- START TIME -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n											<div class="input-group input-large">\n												<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n												<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n											</div>\n											</div>\n										<!-- END TIME -->\n\n										<!-- START WEEKDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END WEEKDAY -->\n\n										<!-- START MONTHDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTHDAY -->\n\n										<!-- START MONTH -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTH -->\n						</div>\n\n						<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n							<!-- START INTERVALS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n									<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n										{{$translate.instant(interval.name)}}\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERVALS -->\n\n						</div>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/voice/route/inbound/view/view.applications.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getRouteApplications()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/voice/routes/inbound/view/{{route.id}}/application" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_APPLICATION\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th>{{ \'APPLICATION_APPLICATION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ARGUMENTS\' | translate }}</th>\n						    <th>{{ \'APPLICATION_TIME\' | translate }}</th>\n								<th width="20%"></th>\n						  </tr>\n					  </thead>\n					  <tbody ui-sortable="sortableOptions" data-ng-model="routeApplications">\n					    <tr data-ng-repeat="application in routeApplications | orderBy:\'priority\'">\n								<td>{{application.app}}</td>\n								<td>{{application.appdata}}</td>\n								<td>{{application.interval}}</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/inbound/view/{{route.id}}/applications/settings/{{application.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app+\' application\',application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="routeApplications.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n</div>\n'),a.put("app/voice/route/inbound/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getRoute()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-call-in"></i>\n					<a href="/voice/routes/inbound/list">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n					<i data-ng-show="route" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="route">\n					<a href="#">{{route.exten}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/inboundroute.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{route.exten}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.inbound.view.settings\')}">\n							<a data-ng-href="/voice/routes/inbound/view/{{route.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.inbound.view.applications\') || $state.is(\'main.voice.routes.inbound.view.application\') || $state.is(\'main.voice.routes.inbound.view.applications.settings\')}">\n							<a data-ng-href="/voice/routes/inbound/view/{{route.id}}/applications">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_ACTIONS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/inbound/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_INBOUND\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts()">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateRoute()" novalidate>\n\n							<!-- START EXTEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DID\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="exten" placeholder="{{\'APPLICATION_DID\' | translate}}" class="form-control" data-ng-model="route.exten" required/>\n								<span data-ng-show="(forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END EXTEN -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="route.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="route.description"/></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/route/inbound/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-call-in"></i>\n				<a href="/voice/routes/inbound/list">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="getContexts()">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-call-in font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTE\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.route.$valid)">\n			    <form name="forms.route" novalidate>\n\n            <!-- START EXTEN -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$invalid}">\n              <label class="control-label">{{\'APPLICATION_DID\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="exten" placeholder="{{\'APPLICATION_DID\' | translate}}" class="form-control" data-ng-model="item.exten" required/>\n              <span data-ng-show="(forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END EXTEN -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/route/internal/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-reload"></i>\n					<a href="/voice/routes/internal/list">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-users font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="routes.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/routes/internal/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getRoutes([\'context\', \'exten\', \'app\', \'appdata\', \'description\'])" csv-header="[\'Context\', \'Exten\', \'App\', \'Appdata\', \'Description\']" field-separator=";" filename="internalRoutes.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedRoutes" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.routesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="routeByPage in routesByPage | filter: $select.search">\n													<div ng-bind-html="routeByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(checked)" checklist-model checklist-value="id"></th>\n                <th st-sort="exten">{{ \'APPLICATION_DID\' | translate }}</th>\n								<th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="route in displayedRoutes"  class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="routes.checked" checklist-value="route.id"></td>\n								<td>{{route.exten}}</td>\n								<td>{{route.context}}</td>\n					      <td>{{route.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/internal/view/{{route.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(route.exten,route.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedRoutes.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_ROUTES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n                <td>\n                  <div class="input-icon right">\n                    <i class="fa fa-search"></i>\n                    <input st-search="exten" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DID\' | translate | lowercase}}" class="form-control" type="search"/>\n                  </div>\n                </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.routesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/internal/view/view.application.html",'\n<div class="row" data-ng-init="initApplication(); getIntervals();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_NEW_APPLICATION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<div class="profile-usertitle-name">\n						{{(main.app | capitalize) || \'Application\'}}\n					</div>\n	        <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.settings.$valid)">\n							<form name="forms.settings" novalidate>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n									<!-- START APP -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="main.app" name="app" theme="bootstrap" required>\n					            <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n					            <ui-select-choices repeat="app.value as app in $application.applications| filter: $select.search">\n					              <div ng-bind-html="app.name | highlight: $select.search"></div>\n					            </ui-select-choices>\n					          </ui-select>\n										<span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END APP -->\n\n									<div id="Queue" class="app-settings" ng-slide-down="main.app == \'Queue\'" lazy-render duration="1">\n										<!-- START QUEUE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n											<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.queue" name="queue" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="queue.name as queue in items | filter: $select.search">\n													<div ng-bind-html="queue.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END QUEUE -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n											<ui-select multiple data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($item.name)}}</ui-select-match>\n												<ui-select-choices repeat="queueOpt.value as queueOpt in $application.queueOptions | filter: $select.search">\n													{{$translate.instant(queueOpt.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n\n										<!-- START URL -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END URL -->\n\n										<!-- START AUDIOFILE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n											<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}</label>\n											<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n												<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items2 | filter: $select.search">\n													<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END AUDIOFILE -->\n\n										<!-- START TIMEOUT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n											<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n											<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END TIMEOUT -->\n\n									</div>\n									<div id="Playback" class="app-settings" ng-slide-down="main.app == \'Playback\'" lazy-render duration="1">\n										<!-- START AUDIOFILE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n											<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n												<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items | filter: $select.search">\n													<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END AUDIOFILE -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n											<ui-select data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n												<ui-select-choices repeat="audioOpt.value as audioOpt in $application.audioOptions | filter: $select.search">\n													{{$translate.instant(audioOpt.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n									</div>\n									<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n										<!-- START INTERFACE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}/{{ \'APPLICATION_IDENTIFIER\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="interface" placeholder="SIP/0000" class="form-control" data-ng-model="application.interface" required>\n											<span data-ng-show="(forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid && forms.settings.interface.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END INTERFACE -->\n\n										<!-- START TIMEOUT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n											<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n											<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END TIMEOUT -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_OPTIONS\' | translate }}</label>\n											<input type="text" name="app_options" placeholder="" class="form-control" data-ng-model="application.app_options">\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n\n										<!-- START URL -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END URL -->\n									</div>\n									<div id="AGI" class="app-settings" ng-slide-down="main.app == \'AGI\'" lazy-render duration="1">\n										<!-- START PROJECT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$invalid}">\n											<label class="control-label">{{\'APPLICATION_PROJECT\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.project" name="project" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="project.name as project in items | filter: $select.search">\n													<div ng-bind-html="project.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END PROJECT -->\n\n										<!-- START URL -->\n										<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<div class="input-group">\n												<input type="text" name="url" placeholder="agi://127.0.0.1/square" class="form-control" data-ng-model="application.url" data-ng-disabled="!application.urlEnabled" data-ng-required="application.urlEnabled" rpattern="/^agi:\\/\\/(?:[0-9]{1,3}\\.){3}[0-9]{1,3}\\/square$/">\n												<span class="input-group-addon">\n													<input type="checkbox" data-ng-model="application.urlEnabled">\n												</span>\n											</div>\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.pattern" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n											</span>\n										</div> -->\n										<!-- END URL -->\n\n									</div>\n									<div id="Goto" class="app-settings" ng-slide-down="main.app == \'Goto\'" lazy-render duration="1">\n										<!-- START CONTEXT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$invalid}">\n											<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.alt_context" name="context" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="context.name as context in items | filter: $select.search">\n													<div ng-bind-html="context.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END CONTEXT -->\n\n										<!-- START EXTENSION -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_EXTENSION\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="extension" placeholder="" class="form-control" data-ng-model="application.alt_extension" required>\n											<span data-ng-show="(forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid && forms.settings.extension.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END EXTENSION -->\n\n										<!-- START PRIORITY -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_PRIORITY\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="number" name="priority" placeholder="" class="form-control" data-ng-model="application.alt_priority" required>\n											<span data-ng-show="(forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END PRIORITY -->\n									</div>\n									<div id="Hangup" class="app-settings" ng-slide-down="main.app == \'Hangup\'" lazy-render duration="1">\n										<!-- START HANGUPCAUSE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$invalid}">\n											<label class="control-label">{{\'APPLICATION_HANGUP_CAUSE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.causecode" theme="bootstrap" name="hangupCause" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n												<ui-select-choices repeat="hangupCause.value as hangupCause in $application.hangupCauses | filter: $select.search">\n													{{$translate.instant(hangupCause.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END HANGUPCAUSE -->\n									</div>\n									<div id="Set" class="app-settings" ng-slide-down="main.app == \'Set\'" lazy-render duration="1">\n										<!-- START VARIABLE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_VARIABLE\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="variable" placeholder="" class="form-control" data-ng-model="application.variable" required>\n											<span data-ng-show="(forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid && forms.settings.variable.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VARIABLE -->\n\n										<!-- START VARVALUE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_VALUE\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="varvalue" placeholder="" class="form-control" data-ng-model="application.value" required>\n											<span data-ng-show="(forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid && forms.settings.varvalue.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VARVALUE -->\n									</div>\n									<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n										<!-- START CUSTOMAPP -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n											<span data-ng-show="(forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid && forms.settings.customApp.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END CUSTOMAPP -->\n\n										<!-- START APPDATA -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n											<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n											<span data-ng-show="(forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid && forms.settings.appdata.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END APPDATA -->\n									</div>\n									<div id="Voicemail" class="app-settings" ng-slide-down="main.app == \'Voicemail\'" lazy-render duration="1">\n										<!-- START VOICEMAIL -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="voicemail" placeholder="{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}" class="form-control" data-ng-model="application.mailbox" required>\n											<span data-ng-show="(forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid && forms.settings.voicemail.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VOICEMAIL -->\n									</div>\n									<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								</form>\n								</wz-step>\n									<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n										<form name="forms.interval" novalidate>\n											<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n											<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n											<!-- START INTERVAL_TYPE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n										<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n												{{$translate.instant(intType.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END INTERVAL_TYPE -->\n									<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n											<!-- START TIME -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n												<div class="input-group input-large">\n													<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n													<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n													<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n													<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n												</div>\n											</div>\n											<!-- END TIME -->\n\n											<!-- START WEEKDAY -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n															{{$translate.instant(weekDay.name)}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n															{{$translate.instant(weekDay.name)}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END WEEKDAY -->\n\n											<!-- START MONTHDAY -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n														<ui-select-match>{{$select.selected}}</ui-select-match>\n														<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n															{{monthDay}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n														<ui-select-match>{{$select.selected}}</ui-select-match>\n														<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n															{{monthDay}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END MONTHDAY -->\n\n											<!-- START MONTH -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n															{{$translate.instant(month.name)}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n															{{$translate.instant(month.name)}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END MONTH -->\n							</div>\n\n							<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n								<!-- START INTERVALS -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n											{{$translate.instant(interval.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVALS -->\n\n							</div>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n						</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/voice/route/internal/view/view.applicationSettings.html",'\n<div class="row" data-ng-init="initApplication();getIntervals();getApplication();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_APPLICATION_SETTINGS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="updateItem()">\n					<div class="profile-usertitle-name">\n						{{(main.app | capitalize) || \'Application\'}}\n					</div>\n	        <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.settings.$valid)">\n							<form name="forms.settings" novalidate>\n\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								<div id="Queue" class="app-settings" ng-slide-down="main.app == \'Queue\'" lazy-render duration="1">\n									<!-- START QUEUE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n										<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.queue" name="queue" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="queue.name as queue in items | filter: $select.search">\n												<div ng-bind-html="queue.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END QUEUE -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n										<ui-select multiple data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($item.name)}}</ui-select-match>\n											<ui-select-choices repeat="queueOpt.value as queueOpt in $application.queueOptions | filter: $select.search">\n												{{$translate.instant(queueOpt.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n\n									<!-- START URL -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END URL -->\n\n									<!-- START AUDIOFILE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n										<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}</label>\n										<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n											<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items2 | filter: $select.search">\n												<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END AUDIOFILE -->\n\n									<!-- START TIMEOUT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n										<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n										<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END TIMEOUT -->\n\n								</div>\n								<div id="Playback" class="app-settings" ng-slide-down="main.app == \'Playback\'" lazy-render duration="1">\n									<!-- START AUDIOFILE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n										<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n											<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items | filter: $select.search">\n												<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END AUDIOFILE -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n										<ui-select data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="audioOpt.value as audioOpt in $application.audioOptions | filter: $select.search">\n												{{$translate.instant(audioOpt.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n								</div>\n								<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n									<!-- START INTERFACE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}/{{ \'APPLICATION_IDENTIFIER\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="interface" placeholder="SIP/0000" class="form-control" data-ng-model="application.interface" required>\n										<span data-ng-show="(forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid && forms.settings.interface.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END INTERFACE -->\n\n									<!-- START TIMEOUT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n										<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n										<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END TIMEOUT -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_OPTIONS\' | translate }}</label>\n										<input type="text" name="app_options" placeholder="" class="form-control" data-ng-model="application.app_options">\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n\n									<!-- START URL -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END URL -->\n								</div>\n								<div id="AGI" class="app-settings" ng-slide-down="main.app == \'AGI\'" lazy-render duration="1">\n									<!-- START PROJECT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$invalid}">\n										<label class="control-label">{{\'APPLICATION_PROJECT\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.project" name="project" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="project.name as project in items | filter: $select.search">\n												<div ng-bind-html="project.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END PROJECT -->\n\n									<!-- START URL -->\n									<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<div class="input-group">\n											<input type="text" name="url" placeholder="agi://127.0.0.1/square" class="form-control" data-ng-model="application.url" data-ng-disabled="!application.urlEnabled" data-ng-required="application.urlEnabled" rpattern="/^agi:\\/\\/(?:[0-9]{1,3}\\.){3}[0-9]{1,3}\\/square$/">\n											<span class="input-group-addon">\n												<input type="checkbox" data-ng-model="application.urlEnabled">\n											</span>\n										</div>\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.pattern" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n										</span>\n									</div> -->\n									<!-- END URL -->\n\n								</div>\n								<div id="Goto" class="app-settings" ng-slide-down="main.app == \'Goto\'" lazy-render duration="1">\n									<!-- START CONTEXT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$invalid}">\n										<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.alt_context" name="context" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="context.name as context in items | filter: $select.search">\n												<div ng-bind-html="context.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END CONTEXT -->\n\n									<!-- START EXTENSION -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_EXTENSION\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="extension" placeholder="" class="form-control" data-ng-model="application.alt_extension" required>\n										<span data-ng-show="(forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid && forms.settings.extension.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END EXTENSION -->\n\n									<!-- START PRIORITY -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_PRIORITY\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="number" name="priority" placeholder="" class="form-control" data-ng-model="application.alt_priority" required>\n										<span data-ng-show="(forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END PRIORITY -->\n								</div>\n								<div id="Hangup" class="app-settings" ng-slide-down="main.app == \'Hangup\'" lazy-render duration="1">\n									<!-- START HANGUPCAUSE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$invalid}">\n										<label class="control-label">{{\'APPLICATION_HANGUP_CAUSE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.causecode" theme="bootstrap" name="hangupCause" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="hangupCause.value as hangupCause in $application.hangupCauses | filter: $select.search">\n												{{$translate.instant(hangupCause.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END HANGUPCAUSE -->\n								</div>\n								<div id="Set" class="app-settings" ng-slide-down="main.app == \'Set\'" lazy-render duration="1">\n									<!-- START VARIABLE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_VARIABLE\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="variable" placeholder="" class="form-control" data-ng-model="application.variable" required>\n										<span data-ng-show="(forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid && forms.settings.variable.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VARIABLE -->\n\n									<!-- START VARVALUE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_VALUE\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="varvalue" placeholder="" class="form-control" data-ng-model="application.value" required>\n										<span data-ng-show="(forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid && forms.settings.varvalue.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VARVALUE -->\n								</div>\n								<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n									<!-- START CUSTOMAPP -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n										<span data-ng-show="(forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid && forms.settings.customApp.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END CUSTOMAPP -->\n\n									<!-- START APPDATA -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n										<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n										<span data-ng-show="(forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid && forms.settings.appdata.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END APPDATA -->\n								</div>\n								<div id="Voicemail" class="app-settings" ng-slide-down="main.app == \'Voicemail\'" lazy-render duration="1">\n									<!-- START VOICEMAIL -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="voicemail" placeholder="{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}" class="form-control" data-ng-model="application.mailbox" required>\n										<span data-ng-show="(forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid && forms.settings.voicemail.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VOICEMAIL -->\n								</div>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n							</wz-step>\n								<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n									<form name="forms.interval" novalidate>\n										<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n										<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								<!-- START INTERVAL_TYPE -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n											{{$translate.instant(intType.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVAL_TYPE -->\n								<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n										<!-- START TIME -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n											<div class="input-group input-large">\n												<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n												<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n											</div>\n										</div>\n										<!-- END TIME -->\n\n										<!-- START WEEKDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END WEEKDAY -->\n\n										<!-- START MONTHDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTHDAY -->\n\n										<!-- START MONTH -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTH -->\n						</div>\n\n						<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n							<!-- START INTERVALS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n									<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n										{{$translate.instant(interval.name)}}\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERVALS -->\n\n						</div>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/voice/route/internal/view/view.applications.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getRouteApplications()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/voice/routes/internal/view/{{route.id}}/application" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_APPLICATION\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th>{{ \'APPLICATION_APPLICATION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ARGUMENTS\' | translate }}</th>\n						    <th>{{ \'APPLICATION_TIME\' | translate }}</th>\n								<th></th>\n						  </tr>\n					  </thead>\n					  <tbody ui-sortable="sortableOptions" data-ng-model="routeApplications">\n					    <tr data-ng-repeat="application in routeApplications | orderBy:\'priority\'">\n								<td>{{application.app}}</td>\n								<td>{{application.appdata}}</td>\n								<td>{{application.interval}}</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/inbound/view/{{route.id}}/applications/settings/{{application.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app+\' application\',application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="routeApplications.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n</div>\n'),a.put("app/voice/route/internal/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getRoute()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-reload"></i>\n					<a href="/voice/routes/internal/list">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n					<i data-ng-show="route" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="route">\n					<a href="#">{{route.exten}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/internalroute.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{route.exten}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.internal.view.settings\')}">\n							<a data-ng-href="/voice/routes/internal/view/{{route.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.internal.view.applications\') || $state.is(\'main.voice.routes.internal.view.application\') || $state.is(\'main.voice.routes.internal.view.applications.settings\')}">\n							<a data-ng-href="/voice/routes/internal/view/{{route.id}}/applications">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_ACTIONS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/internal/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_INTERNAL\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts()">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateRoute()" novalidate>\n\n							<!-- START EXTEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DID\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="exten" placeholder="{{\'APPLICATION_DID\' | translate}}" class="form-control" data-ng-model="route.exten" required/>\n								<span data-ng-show="(forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END EXTEN -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="route.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="route.description"/></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/route/internal/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-reload"></i>\n				<a href="/voice/routes/internal/list">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="getContexts()">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-reload font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTE\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.route.$valid)">\n			    <form name="forms.route" novalidate>\n\n            <!-- START EXTEN -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$invalid}">\n              <label class="control-label">{{\'APPLICATION_DID\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="exten" placeholder="{{\'APPLICATION_DID\' | translate}}" class="form-control" data-ng-model="item.exten" required/>\n              <span data-ng-show="(forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END EXTEN -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/route/outbound/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-call-out"></i>\n					<a href="/voice/routes/outbound/list">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-users font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="routes.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<!-- <li>\n								<a href="#">\n								<i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n							</li> -->\n							<li>\n								<a href="/voice/routes/outbound/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n							<!-- <li>\n								<a href="#">\n								<i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n							</li> -->\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getRoutes([\'context\', \'exten\', \'app\', \'appdata\', \'description\'])" csv-header="[\'Context\', \'Exten\', \'App\', \'Appdata\', \'Description\']" field-separator=";" filename="routes_outobund.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedRoutes" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.routesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="routeByPage in routesByPage | filter: $select.search">\n													<div ng-bind-html="routeByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(checked)" checklist-model checklist-value="id"></th>\n                <th st-sort="exten">{{ \'APPLICATION_PATTERN\' | translate }}</th>\n								<th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="route in displayedRoutes"  class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="routes.checked" checklist-value="route.id"></td>\n								<td>{{route.exten}}</td>\n								<td>{{route.context}}</td>\n					      <td>{{route.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/outbound/view/{{route.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(route.name,route.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedRoutes.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_ROUTES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="id" class="form-control" type="search"/>\n									</div>\n						    </td>\n                <td>\n                  <div class="input-icon right">\n                    <i class="fa fa-search"></i>\n                    <input st-search="exten" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_PATTERN\' | translate | lowercase}}" class="form-control" type="search"/>\n                  </div>\n                </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.routesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/outbound/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getRoute()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-call-out"></i>\n					<a href="/voice/routes/outbound/list">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n					<i data-ng-show="route" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="route">\n					<a href="#">{{route.exten}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/outboundroute.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{route.exten}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.outbound.view.settings\')}">\n							<a data-ng-href="/voice/routes/outbound/view/{{route.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.outbound.view.routes\') || $state.is(\'main.voice.routes.outbound.view.route\') || $state.is(\'main.voice.routes.outbound.view.routes.settings\')}">\n							<a data-ng-href="/voice/routes/outbound/view/{{route.id}}/routes">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_ACTIONS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/outbound/view/view.route.html",'<div class="row" data-ng-init="initApplication();getIntervals();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_NEW_ROUTE\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="profile-usertitle-name">\n					{{(main.app | capitalize) || \'Application\'}}\n				</div>\n				<wizard on-finish="createItem()">\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(forms.info.$valid)">\n							<form name="forms.info" novalidate>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								<!-- START APP -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid}">\n									<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="main.app" name="app" theme="bootstrap" required>\n										<ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="app.value as app in applications | filter: $select.search">\n											<div ng-bind-html="app.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid && forms.info.app.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END APP -->\n								<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n								<!-- START TRUNK -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$invalid}">\n									<label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.TrunkId" name="trunk" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="trunk.id as trunk in items | filter: $select.search">\n											<div ng-bind-html="trunk.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span class="help-block">\n										{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n									</span>\n									<span data-ng-show="(forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END TRUNK -->\n\n								<!-- START CONTEXT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$invalid}">\n									<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.context" name="context" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="context.name as context in items2 | filter: $select.search">\n											<div ng-bind-html="context.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span class="help-block">\n										{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n									</span>\n									<span data-ng-show="(forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END CONTEXT -->\n\n								<!-- START CALLERID -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid}">\n									<label class="control-label">{{ \'APPLICATION_CALLERID\' | translate }}</label>\n									<input type="text" name="callerID" placeholder="{{ \'APPLICATION_CALLERID\' | translate }}" class="form-control" data-ng-model="application.callerID">\n									<span data-ng-show="(forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END CALLERID -->\n\n									<!-- START CUTDIGITS -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_CUTDIGITS\' | translate}}</label>\n									<input type="number" class="form-control" name="cutdigits" data-ng-model="application.cutdigits">\n									<span class="help-block">\n										{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n									</span>\n								</div>\n								<!-- END CUTDIGITS -->\n							</div>\n							<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n								<!-- START CUSTOMAPP -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid}">\n									<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n									<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n									<span data-ng-show="(forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid && forms.info.customApp.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END CUSTOMAPP -->\n\n								<!-- START APPDATA -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n									<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n									<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n									<span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END APPDATA -->\n							</div>\n							<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n							</wz-step>\n								<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n									<form name="forms.interval" novalidate>\n										<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n										<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n									<!-- START INTERVAL_TYPE -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n											{{$translate.instant(intType.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVAL_TYPE -->\n								<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n										<!-- START TIME -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n											<div class="input-group input-large">\n												<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n												<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n											</div>\n										</div>\n										<!-- END TIME -->\n\n										<!-- START WEEKDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END WEEKDAY -->\n\n										<!-- START MONTHDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTHDAY -->\n\n										<!-- START MONTH -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTH -->\n						</div>\n\n						<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n							<!-- START INTERVALS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n									<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n										{{$translate.instant(interval.name)}}\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERVALS -->\n\n						</div>\n\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/voice/route/outbound/view/view.routeSettings.html",'\n<div class="row" data-ng-init="initApplication();getApplication();getIntervals();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_APPLICATION_SETTINGS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="updateItem()">\n					<div class="profile-usertitle-name">\n						{{(main.app | capitalize) || \'Application\'}}\n					</div>\n	        <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.info.$valid)">\n						<form name="forms.info" novalidate>\n							<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n							<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n\n							<!-- START TRUNK -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.TrunkId" name="trunk" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="trunk.id as trunk in items | filter: $select.search">\n										<div ng-bind-html="trunk.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TRUNK -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in items2 | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<!-- START CALLERID -->\n							<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_CALLERID\' | translate }}</label>\n								<input type="text" name="callerID" placeholder="{{ \'APPLICATION_CALLERID\' | translate }}" class="form-control" data-ng-model="application.callerID">\n								<span data-ng-show="(forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CALLERID -->\n\n								<!-- START CUTDIGITS -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_CUTDIGITS\' | translate}}</label>\n								<input type="number" class="form-control" name="cutdigits" data-ng-model="application.cutdigits">\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n							</div>\n							<!-- END CUTDIGITS -->\n						</div>\n						<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n							<!-- START CUSTOMAPP -->\n							<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n								<span data-ng-show="(forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid && forms.info.customApp.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CUSTOMAPP -->\n\n							<!-- START APPDATA -->\n							<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n								<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n								<span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END APPDATA -->\n						</div>\n						<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</form>\n					</wz-step>\n						<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n							<form name="forms.interval" novalidate>\n								<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n						<!-- START INTERVAL_TYPE -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n							<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n								<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n									{{$translate.instant(intType.name)}}\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END INTERVAL_TYPE -->\n						<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n								<!-- START TIME -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n									<div class="input-group input-large">\n										<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n										<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n										<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n										<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n									</div>\n								</div>\n								<!-- END TIME -->\n\n								<!-- START WEEKDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n											<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{$translate.instant(weekDay.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n											<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{$translate.instant(weekDay.name)}}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END WEEKDAY -->\n\n								<!-- START MONTHDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTHDAY -->\n\n								<!-- START MONTH -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n											<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{$translate.instant(month.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n											<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{$translate.instant(month.name)}}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTH -->\n							</div>\n\n							<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n								<!-- START INTERVALS -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n											{{$translate.instant(interval.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVALS -->\n\n							</div>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/outbound/view/view.routes.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getRouteApplications()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/voice/routes/outbound/view/{{route.id}}/route" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n								<th>{{ \'APPLICATION_APPLICATION\' | translate }}</th>\n								<th>{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n								<th>{{ \'APPLICATION_ARGUMENTS\' | translate }}</th>\n						    <th>{{ \'APPLICATION_TIME\' | translate }}</th>\n								<th></th>\n						  </tr>\n					  </thead>\n					  <tbody ui-sortable="sortableOptions" data-ng-model="routeApplications">\n					    <tr data-ng-repeat="application in routeApplications | orderBy:\'priority\'">\n								<td>{{application.app}}</td>\n								<td>{{application.context}}</td>\n								<td>{{application.appdata}}</td>\n								<td>{{application.interval}}</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/outbound/view/{{route.id}}/routes/settings/{{application.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(\'Route\',application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="routeApplications.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_ROUTES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n</div>\n'),a.put("app/voice/route/outbound/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_OUTBOUND\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts()">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateRoute()" novalidate>\n\n							<!-- START EXTEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PATTERN\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="exten" placeholder="{{\'APPLICATION_PATTERN\' | translate}}" class="form-control" data-ng-model="route.exten" required/>\n								<span data-ng-show="(forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END EXTEN -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="route.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="route.description"/></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/route/outbound/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-call-out"></i>\n				<a href="/voice/routes/outbound/list">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="getContexts()">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-call-out font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTE\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.route.$valid)">\n			    <form name="forms.route" novalidate>\n\n            <!-- START EXTEN -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$invalid}">\n              <label class="control-label">{{\'APPLICATION_PATTERN\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="exten" placeholder="{{\'APPLICATION_PATTERN\' | translate}}" class="form-control" data-ng-model="item.exten" required/>\n              <span data-ng-show="(forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END EXTEN -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/voicemail/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope-letter"></i>\n					<a href="/voice/voicemails/list">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-envelope-letter font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="voicemails.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_VOICEMAIL\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/voicemails/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getVoicemails([\'mailbox\', \'fullname\', \'email\'])" csv-header="[\'Mailbox\', \'Fullname\', \'Email\']" field-separator=";" filename="voicemails.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedVoicemails" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.voicemailsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="voicemailByPage in voicemailsByPage | filter: $select.search">\n													<div ng-bind-html="voicemailByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(voicemail, checked)" checklist-model checklist-value="uniqueid"></th>\n						    <th st-sort="mailbox">{{ \'APPLICATION_MAILBOX\' | translate }}</th>\n						    <th st-sort="fullname">{{ \'APPLICATION_FULLNAME\' | translate }}</th>\n						    <th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="voicemail in displayedVoicemails" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="voicemails.checked" checklist-value="voicemail.uniqueid"></td>\n								<td>{{voicemail.mailbox}}</td>\n                <td>{{voicemail.fullname}}</td>\n					      <td>{{voicemail.email}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/voicemails/view/{{voicemail.uniqueid}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(voicemail.mailbox,voicemail.uniqueid)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedVoicemails.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_VOICEMAILS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="mailbox" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_MAILBOX\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="fullname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FULLNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.voicemailsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/voicemail/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getVoicemail()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope-letter"></i>\n					<a href="/voice/voicemails/list">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a>\n					<i data-ng-show="voicemail" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="voicemail">\n					<a href="#">{{voicemail.mailbox}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/voicemail.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{voicemail.mailbox}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.voicemails.view.settings\')}">\n							<a data-ng-href="/voice/voicemails/view/{{voicemail.uniqueid}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n            <li data-ng-class="{active: $state.is(\'main.voice.voicemails.view.messages\')}">\n              <a data-ng-href="/voice/voicemails/view/{{voicemail.uniqueid}}/messages">\n              <i class="icon-speech"></i>\n              {{ \'APPLICATION_MESSAGES\' | translate}} </a>\n            </li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/voice/voicemail/view/view.messages.html",'<div class="row" data-ng-init="getMessages()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_MESSAGES\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th>{{ \'APPLICATION_CALLERID\' | translate }}</th>\n						    <th>{{ \'APPLICATION_DATE\' | translate }}</th>\n								<th>{{ \'APPLICATION_DURATION\' | translate }}</th>\n								<th>{{ \'APPLICATION_RECORDING\' | translate }}</th>\n								<th width="20%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody data-ng-model="voicemailMessages">\n					    <tr data-ng-repeat="message in voicemailMessages">\n								<td>{{message.callerid}}</td>\n								<td>{{returnMessageDate(message.stamp)}}</td>\n								<td>{{returnDuration(message.duration) | date: \'mm:ss\'}}</td>\n								<td>\n									<audio controls ng-src="{{encodeRecording(message.recording)}}" preload="none">\n			            Your browser does not support the audio tag.\n			          </audio>\n							</td>\n					      <td>\n									<a class="btn default btn-xs green-stripe" href="/api/voice/voicemails/messages/{{message.id}}/download" target="_self">\n										{{ \'APPLICATION_DOWNLOAD\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(\'message\',message.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="voicemailMessages.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No messages available</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/voicemail/view/view.settings.html",'<div class="row" data-ng-init="getContexts()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_VOICEMAIL\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n					<!-- <li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_ADVANCED\' | translate}}</a>\n					</li> -->\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceVoicemail()" novalidate>\n\n							<!-- START MAILBOX -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.mailbox.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="voicemail.mailbox" required/>\n								<span data-ng-show="forms.general.$submitted && forms.general.mailbox.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MAILBOX -->\n\n							<!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.password.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}</label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="voicemail.password" />\n								<span data-ng-show="forms.general.$submitted && forms.general.password.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n							<!-- START CONFIRM PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rpassword.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}</label>\n								<input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="voicemail.rpassword" nx-equal="voicemail.password"/>\n								<span data-ng-show="forms.general.$submitted && (forms.general.rpassword.$invalid || forms.general.rpassword.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONFIRM PASSWORD -->\n\n							<!-- START FULLNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.fullname.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="voicemail.fullname" required/>\n								<span data-ng-show="forms.general.$submitted && forms.general.fullname.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FULLNAME -->\n\n							<!-- START EMAIL -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.email.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="voicemail.email" required/>\n								<span data-ng-show="forms.general.$submitted && forms.general.host.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END EMAIL -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="voicemail.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n					<!-- ADVANCED TAB -->\n					<!-- <div class="tab-pane" id="tab_1_2">\n						<form name="forms.advanced" data-ng-submit="updateVoiceVoicemail()" novalidate>\n\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div> -->\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/voicemail/wizard/wizard.html",'<div class="col-md-12" data-ng-init="initWizard();getContexts();">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-envelope-letter"></i>\n				<a href="/voice/voicemails/list">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-envelope-letter font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_VOICEMAIL\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n			    <form name="forms.general" novalidate>\n\n			      <!-- START MAILBOX -->\n			      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.mailbox.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="item.mailbox" required/>\n							<span data-ng-show="forms.general.$submitted && forms.general.mailbox.$invalid" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END MAILBOX -->\n\n						<!-- START PASSWORD -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.password.$invalid}">\n							<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n							<span data-ng-show="forms.general.$submitted && forms.general.password.$invalid" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END PASSWORD -->\n\n						<!-- START CONFIRM PASSWORD -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rpassword.$invalid}">\n							<label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n							<span data-ng-show="forms.general.$submitted && (forms.general.rpassword.$invalid || forms.general.rpassword.$invalid)" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n							</span>\n						</div>\n						<!-- END CONFIRM PASSWORD -->\n\n            <!-- START FULLNAME -->\n            <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.fullname.$invalid}">\n              <label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n              <span data-ng-show="forms.general.$submitted && forms.general.fullname.$invalid" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END FULLNAME -->\n\n            <!-- START EMAIL -->\n            <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.email.$invalid}">\n              <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="item.email" required/>\n              <span data-ng-show="forms.general.$submitted && forms.general.host.$invalid" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END EMAIL -->\n\n            <!-- START CONTEXT -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n              <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <ui-select data-ng-model="item.context" name="context" theme="bootstrap" required>\n                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                <ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n                  <div ng-bind-html="context.name | highlight: $select.search"></div>\n                </ui-select-choices>\n              </ui-select>\n              <span class="help-block">\n                {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n              </span>\n              <span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END CONTEXT -->\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</form>\n				</wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/yourdashboard/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_DASHBOARD\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.dashboard" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.dashboard.name.$touched || forms.dashboard.$submitted) && forms.dashboard.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.dashboard.name.$touched || forms.dashboard.$submitted) && forms.dashboard.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.dashboard.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/yourdashboard/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-screen-desktop"></i>\n					<a href="/yourdashboards/list">{{ \'APPLICATION_YOUR_DASHBOARDS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_YOUR_DASHBOARDS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="dashboards.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<button class="btn green-jungle " ng-click="create()">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_DASHBOARD\' | translate }}\n						</button>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getDashboards([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="dashboards.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedDashboards" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.dashboardsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="dashboardByPage in dashboardsByPage | filter: $select.search">\n													<div ng-bind-html="dashboardByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(dashboard, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="dashboard in displayedDashboards" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="dashboard.defaultEntry" type="checkbox" checklist-model="dashboards.checked" checklist-value="dashboard.id"></td>\n								<td>{{dashboard.name}}</td>\n					      <td>{{dashboard.description}}</td>\n					      <td>\n									<a class="btn default btn-xs green-stripe" data-ng-href="/yourdashboards/show/{{dashboard.id}}">\n										{{ \'APPLICATION_VIEW\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/yourdashboards/view/{{dashboard.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(dashboard.name,dashboard.id)" data-ng-class="{\'disabled\': dashboard.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedDashboards.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_DASHBOARDS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.dashboardsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/yourdashboard/show/show.html",'<div class="col-md-12" ng-init="getDashboard()">\n  <adf-dashboard\n          name="{{dashboard.name}}"\n          collapsible="{{dashboard.collapsible}}"\n          maximizable="{{dashboard.maximizable}}"\n          enableconfirmdelete="{{dashboard.enableconfirmdelete}}"\n          structure="{{dashboard.structure}}"\n          editable="{{dashboard.editable}}"\n          adf-model="dashboard.model"/>\n</div>\n'),a.put("app/yourdashboard/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getDashboard()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-screen-desktop"></i>\n					<a href="/yourdashboards/list">{{ \'APPLICATION_YOUR_DASHBOARDS\' | translate }}</a>\n					<i data-ng-show="dashboard" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="dashboard">\n					<a href="#">{{dashboard.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/dashboard.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{dashboard.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.yourdashboards.view.settings\')}">\n							<a data-ng-href="/yourdashboards/view/{{dashboard.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/yourdashboard/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_DASHBOARD\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateDashboard()" novalidate>\n\n							<!-- START VISIBLE TO ADMIN -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_VISIBLE_TO_ADMIN\' | translate}}</label><br>\n								<input\n									bs-switch\n									ng-model="dashboard.admin"\n									type="checkbox"\n									switch-active="{{ radioSwitch.isActive }}"\n									switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n									switch-on-color="{{ radioSwitch.onColor }}"\n									switch-off-color="{{ radioSwitch.offColor }}"\n									switch-animate="{{ radioSwitch.animate }}"\n									switch-size="{{ radioSwitch.size }}"\n									switch-label="{{ radioSwitch.label }}"\n									switch-icon="{{ radioSwitch.icon }}"\n									switch-radio-off="{{ radioSwitch.radioOff }}"\n									switch-label-width="{{ radioSwitch.labelWidth }}"\n									switch-handle-width="{{ radioSwitch.handleWidth }}">\n							</div>\n							<!-- END VISIBLE TO ADMIN -->\n\n							<!-- START VISIBLE TO USER -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_VISIBLE_TO_USER\' | translate}}</label><br>\n								<input\n									bs-switch\n									ng-model="dashboard.user"\n									type="checkbox"\n									switch-active="{{ radioSwitch.isActive }}"\n									switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n									switch-on-color="{{ radioSwitch.onColor }}"\n									switch-off-color="{{ radioSwitch.offColor }}"\n									switch-animate="{{ radioSwitch.animate }}"\n									switch-size="{{ radioSwitch.size }}"\n									switch-label="{{ radioSwitch.label }}"\n									switch-icon="{{ radioSwitch.icon }}"\n									switch-radio-off="{{ radioSwitch.radioOff }}"\n									switch-label-width="{{ radioSwitch.labelWidth }}"\n									switch-handle-width="{{ radioSwitch.handleWidth }}">\n							</div>\n							<!-- END VISIBLE TO USER -->\n\n							<!-- START VISIBLE TO AGENT -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_VISIBLE_TO_AGENT\' | translate}}</label><br>\n								<input\n									bs-switch\n									ng-model="dashboard.agent"\n									type="checkbox"\n									switch-active="{{ radioSwitch.isActive }}"\n									switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n									switch-on-color="{{ radioSwitch.onColor }}"\n									switch-off-color="{{ radioSwitch.offColor }}"\n									switch-animate="{{ radioSwitch.animate }}"\n									switch-size="{{ radioSwitch.size }}"\n									switch-label="{{ radioSwitch.label }}"\n									switch-icon="{{ radioSwitch.icon }}"\n									switch-radio-off="{{ radioSwitch.radioOff }}"\n									switch-label-width="{{ radioSwitch.labelWidth }}"\n									switch-handle-width="{{ radioSwitch.handleWidth }}">\n							</div>\n							<!-- END VISIBLE TO AGENT -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="dashboard.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/zendesk/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-handbag"></i>\n					<a href="/zendesk/list">{{ \'APPLICATION_ZENDESK\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-handbag font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ZENDESK\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="accounts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle" href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/zendesk/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'authType\',\'token\',\'password\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Authentication Type\', \'Token\', \'Password\']" field-separator=";" filename="zendesk_accounts.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedZdAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n													<div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n								<th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n								<th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="account in displayedZdAccounts" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n					      <td>{{account.name}}</td>\n					      <td>{{account.username}}</td>\n								<td>{{account.remoteUri}}</td>\n								<td>{{account.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/zendesk/view/{{account.id}}/account">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n									<a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n										{{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedZdAccounts.length">\n								<td colspan="7" style="text-align:center;">\n									<i>No account available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="7" class="text-center">\n									<div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n					</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/zendesk/view/view.account.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n              <!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n								<span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n								<span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START AUTH TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n								<label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n								<ui-select data-ng-model="account.authType" name="authType" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="type in [\'password\', \'token\'] | filter: $select.search">\n										<div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="account.authType == \'password\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n								<span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n              <!-- START TOKEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="account.authType == \'token\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="token" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.token" required/>\n								<span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TOKEN -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/zendesk/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createConfiguration()">\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n							<form name="formsConfiguration.info" novalidate>\n								<!-- START NAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n									<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n									<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n									<span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END NAME -->\n								<!-- START DESCRIPTION -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n									<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n								</div>\n								<!-- END DESCRIPTION -->\n\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/zendesk/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n					</li>\n          <li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n					</li>\n          <li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- SUBJECT TAB -->\n					<div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n	            <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n	              <div class="col-md-3">\n	                <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n	                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n	                <div class="form-group">\n	                  <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n	                </div>\n	              </div>\n	              <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n	                <div class="form-group">\n	                  <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n					<div class="tab-pane ui-padding" id="tab_1_2">\n						<div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n							<div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n								<!-- <pre>\n									{{descriptionItem|json}}\n								</pre> -->\n	              <div class="col-md-2">\n	                <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n	                  <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n	                <div class="form-group">\n	                  <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n	                </div>\n	              </div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n									<input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n								</div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n									<ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n	                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n								</div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n									<input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n								</div>\n	              <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n	                <div class="form-group">\n	                  <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n					<div class="tab-pane ui-padding" id="tab_1_3">\n						<div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n	            <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n	              <div class="col-md-3">\n	                <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n	                  <ui-select-choices repeat="item.id as item in accountFields | filter: $select.search">\n	                    <div ng-bind-html="item.title | highlight: $select.search"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n	                <div class="form-group">\n										<ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n		                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n		                  <ui-select-choices repeat="item.value as item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n		                    <div ng-bind-html="item.name | highlight: $select.search"></div>\n		                  </ui-select-choices>\n		                </ui-select>\n	                </div>\n	              </div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n									<div class="form-group">\n										<ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n		                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n		                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n		                    <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n		                  </ui-select-choices>\n		                </ui-select>\n									</div>\n								</div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n	                <div class="form-group">\n										<input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n	                </div>\n	              </div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n	                <div class="form-group">\n										<ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END FIELDS TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/zendesk/view/view.configurations.html",'<div ui-view class="profile-content">\n	<div class="row" data-ng-init="getConfigurations()">\n		<div class="col-md-12">\n			<div class="portlet light">\n				<div class="portlet-title  tabbable-line">\n					<div class="caption caption-md">\n						<i class="icon-globe theme-font hide"></i>\n						<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n					</div>\n					<div class="actions">\n						<div class="btn-group">\n							<a class="btn green-jungle " href="/zendesk/view/{{account.id}}/configuration" data-toggle="dropdown">\n								<i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n							</a>\n						</div>\n					</div>\n				</div>\n				<div class="portlet-body">\n					<!-- START TABLE -->\n					<table class="table table-striped table-bordered table-hover">\n						  <thead>\n							  <tr>\n							    <th>{{\'APPLICATION_NAME\' | translate}}</th>\n									<th>{{\'APPLICATION_DESCRIPTION\' | translate}}</th>\n									<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n							  </tr>\n						  </thead>\n							<tbody>\n						    <tr data-ng-repeat="configuration in configurations">\n									<td>{{configuration.name}}</td>\n									<td>{{configuration.description}}</td>\n						      <td>\n										<a class="btn default btn-xs blue-stripe" data-ng-href="/zendesk/view/{{account.id}}/configurations/settings/{{configuration.id}}">\n											{{ \'APPLICATION_SETTINGS\' | translate}}\n						        </a>\n						        <a class="btn default btn-xs red-stripe" data-ng-click="deleteConfiguration(configuration.name,configuration.id)">\n											{{ \'APPLICATION_DELETE\' | translate }}\n						        </a>\n						      </td>\n						    </tr>\n								<tr data-ng-hide="configurations.length">\n									<td colspan="5" style="text-align:center;">\n										<i>No configuration available</i>\n									</td>\n								</tr>\n						  </tbody>\n					</table>\n					<!-- END TABLE -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/zendesk/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n          <i class="icon-handbag"></i>\n          <a href="/zendesk/list">{{ \'APPLICATION_ZENDESK\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{account.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img src="assets/images/media/zendesk.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{account.name}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{account.remoteUri}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.zendesk.view.account\')}">\n							<a ng-href="/zendesk/view/{{account.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.includes(\'main.zendesk.view.configurations\') || $state.is(\'main.zendesk.view.configuration\')}">\n							<a ng-href="/zendesk/view/{{account.id}}/configurations">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/zendesk/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-handbag"></i>\n						<a href="/zendesk/list">{{ \'APPLICATION_ZENDESK\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n						<form name="forms.formSetting" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.username" required ng-remote-validate="/api/zendesk/accounts/validate/username"/>\n								<span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formSetting.username.$touched || forms.formSetting.$submitted) && forms.formSetting.username.$error.ngRemoteValidate" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n				        </span>\n							</div>\n							<!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required ng-remote-validate="/api/zendesk/accounts/validate/remoteUri"/>\n								<span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formSetting.remoteUri.$touched || forms.formSetting.$submitted) && forms.formSetting.remoteUri.$error.ngRemoteValidate" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n				        </span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START AUTH TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n								<label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n								<ui-select data-ng-model="item.authType" name="authType" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="type in [\'password\', \'token\'] | filter: $select.search">\n										<div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="item.authType == \'password\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n								<span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n              <!-- START TOKEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="item.authType == \'token\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="token" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.token" required/>\n								<span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TOKEN -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n\n				</wizard>\n\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("components/footer/footer.html",'<!-- BEGIN FOOTER -->\n<div class="page-footer" data-ng-init="initFooter()">\n  <div class="page-footer-inner">\n     {{info.name}} v. {{info.version}} | 2015-2016 &copy; Powered by Xenialab\n  </div>\n  <div class="scroll-to-top">\n    <i class="icon-arrow-up"></i>\n  </div>\n</div>\n<!-- END FOOTER -->\n'),a.put("components/header/header.html",'<!-- BEGIN HEADER INNER -->\n<div class="page-header-inner" data-ng-init="initHeader()">\n  <!-- BEGIN LOGO -->\n  <div class="page-logo">\n    <a href="/">\n    <img src="assets/images/logo.png" alt="logo" class="logo-default"/>\n    </a>\n    <div class="menu-toggler sidebar-toggler">\n      <!-- DOC: Remove the above "hide" to enable the sidebar toggler button on header -->\n    </div>\n  </div>\n  <!-- END LOGO -->\n  <!-- BEGIN HEADER SEARCH BOX -->\n  <!-- DOC: Apply "search-form-expanded" right after the "search-form" class to have half expanded search box -->\n  <form class="search-form hide" action="extra_search.html" method="GET">\n    <div class="input-group">\n      <input type="text" class="form-control" placeholder="Search..." name="query">\n      <span class="input-group-btn">\n      <a href="javascript:;" class="btn submit"><i class="icon-magnifier"></i></a>\n      </span>\n    </div>\n  </form>\n  <!-- END HEADER SEARCH BOX -->\n  <!-- BEGIN RESPONSIVE MENU TOGGLER -->\n  <a href="javascript:;" class="menu-toggler responsive-toggler" data-toggle="collapse" data-target=".navbar-collapse">\n  </a>\n  <!-- END RESPONSIVE MENU TOGGLER -->\n  <!-- BEGIN TOP NAVIGATION MENU -->\n  <div class="top-menu">\n    <ul class="nav navbar-nav pull-right">\n      <!-- BEGIN LANGUAGE BAR -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-language">\n        <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n        <img ng-src="assets/images/flags/{{ language }}.png">\n        <i class="fa fa-angle-down"></i>\n        </a>\n        <ul class="dropdown-menu dropdown-menu-default">\n          <li>\n            <a href="#" ng-click="changeLanguage(\'it\')">\n            <img alt="" src="assets/images/flags/it.png"> Italian </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'en_EN\')">\n            <img alt="" src="assets/images/flags/en_EN.png"> English </a>\n          </li>\n        </ul>\n      </li>\n      <!-- END LANGUAGE BAR -->\n      <!-- BEGIN USER LOGIN DROPDOWN -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-user">\n        <a href="#" class="dropdown-toggle" dropdown-menu-hover data-toggle="dropdown" data-close-others="true">\n        <img class="img-circle" data-ng-src="api/users/avatar/{{getCurrentUser().userpic || \'unknown_avatar\'}}" alt="...">\n        <span class="username username-hide-on-mobile">\n          {{ getCurrentUser().fullname }} </span>\n        <i class="fa fa-angle-down"></i>\n        </a>\n        <ul class="dropdown-menu dropdown-menu-default">\n          <li>\n            <a ng-href=" {{isAdmin() ? \'/users/view/\'+getCurrentUser().id+\'/account\' : \'/agents/view/\'+getCurrentUser().id+\'/account\'}}">\n            <i class="icon-key"></i>Change password</a>\n          </li>\n          <!-- <li>\n            <a href="#">\n            <i class="icon-calendar"></i> My Calendar </a>\n          </li> -->\n          <!-- <li>\n            <a href="#">\n            <i class="icon-envelope-open"></i> My Inbox <span class="badge badge-danger">\n            3 </span>\n            </a>\n          </li> -->\n          <!-- <li>\n            <a href="#/todo">\n            <i class="icon-rocket"></i> My Tasks <span class="badge badge-success">\n            7 </span>\n            </a>\n          </li> -->\n          <!-- <li class="divider">\n          </li> -->\n          <!-- <li>\n            <a href="#">\n            <i class="icon-lock"></i> Lock Screen </a>\n          </li> -->\n          <li data-ng-click="logout()">\n            <a href="#">\n            <i class="icon-logout"></i> Log Out </a>\n          </li>\n        </ul>\n      </li>\n      <!-- END USER LOGIN DROPDOWN -->\n      <!-- BEGIN QUICK SIDEBAR TOGGLER -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-quick-sidebar-toggler" data-ng-click="toggleQuickSidebar()">\n        <a href="#" class="dropdown-toggle">\n        <i class="icon-logout"></i>\n        </a>\n      </li>\n      <!-- END QUICK SIDEBAR TOGGLER -->\n    </ul>\n  </div>\n  <!-- END TOP NAVIGATION MENU -->\n</div>\n<!-- END HEADER INNER -->\n'),a.put("components/modal/delete.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text" ng-bind="modal.text"></p>\n  <div ng-if="modal.html" ng-bind-html="modal.html"></div>\n</div>\n<div class="modal-footer">\n  <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" ng-bind="button.text" class="btn"></button>\n</div>\n'),a.put("components/quickSidebar/modal/add.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title | translate" class="modal-title"></h4>\n</div>\n\n<div class="modal-body">\n  <div class="portlet box blue">\n		<div class="portlet-title">\n			<div class="caption">\n				<i class="icon-people"></i>{{\'APPLICATION_SELECTED_AGENTS\' | translate}}\n			</div>\n		</div>\n		<div class="portlet-body">\n			<ul>\n				<li data-ng-repeat="item in items">\n					 {{item.fullname}}\n				</li>\n\n        <li data-ng-repeat="item in selected.items">\n					 {{item.fullname}}\n				</li>\n			</ul>\n		</div>\n	</div>\n\n  <ui-select multiple name="items" ng-model="selected.items" theme="bootstrap">\n    <ui-select-match placeholder="{{\'APPLICATION_SELECTED_AGENTS\' | translate}}">{{$item.fullname}}</ui-select-match>\n    <ui-select-choices repeat="{id: agent.id, fullname: agent.fullname} as agent in agents.rows | filter: $select.search">\n      {{agent.fullname}}\n    </ui-select-choices>\n  </ui-select>\n</div>\n\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-click="ok()" data-ng-show="selected.items.length">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" data-ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("components/quickSidebar/modal/close.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title | translate" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text" ng-bind="modal.text | translate"></p>\n  <!-- <div ng-if="modal.html" ng-bind-html="modal.html"></div> -->\n</div>\n<div class="modal-footer">\n  <button class="btn btn-danger" type="button" ng-click="ok()">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n  <!-- <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" ng-bind="button.text" class="btn"></button> -->\n</div>\n'),a.put("components/quickSidebar/quickSidebar.html",'<div class="page-quick-sidebar">\n  <div class="nav-justified">\n    <ul class="nav nav-tabs nav-justified">\n      <li data-ng-class="{active:currentTab==0}" data-ng-click="goToTab(0)">\n        <a href="#">\n          <!-- <i class="icon-people"></i> <span class="badge badge-danger">2</span> -->\n          <i class="icon-people"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==1}" data-ng-click="goToTab(1)">\n        <a href="#">\n          <!-- <i class="icon-eye"></i> <span class="badge badge-success">7</span> -->\n        <i class="icon-eye"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==2}" data-ng-click="goToTab(2)">\n        <a href="#">\n          <!-- <i class="icon-globe"></i> <span class="badge badge-success">7</span> -->\n        <i class="icon-globe"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==3}" data-ng-click="goToTab(3)">\n        <a href="#">\n          <!-- <i class="icon-bubbles"></i> <span class="badge badge-success">7</span> -->\n        <i class="icon-bubbles"></i>\n        </a>\n      </li>\n    </ul>\n    <div class="tab-content">\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==0 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list" >\n          <div class="quicksidebar-search">\n            <div class="input-group">\n							<input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_AGENT\' | translate}}..." ng-model="searchAgent">\n							<span class="input-group-btn">\n							<i class="icon-magnifier"></i>\n							</span>\n						</div>\n          </div>\n          <ul class="media-list list-items" data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="agent in agents.rows | orderBy:\'-online\' | filter:searchAgent as resultsAgent" data-ng-if="agent.id !== currentUser.id">\n              <div class="media-status">\n              </div>\n              <img class="media-object" data-ng-src="api/users/avatar/{{agent.userpic ? agent.userpic : \'unknown_avatar\'}}" alt="{{agent.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(agent.id)">\n                <h4 class="media-heading"><span class="item-status">{{agent.fullname | characters:15 :true}} {{agent.internal}}</h4>\n                <div class="media-heading-small">\n                   <span class="badge badge-empty" data-ng-class="agent.online ? \'badge-success\' : \'badge-danger\'"></span></span> {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{agent.updatedAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="agents.rows.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_AGENTS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="resultsAgent.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_AGENTS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==1 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_USER\' | translate}}..." ng-model="searchUser">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="user in users.rows | orderBy:\'-online\' | filter:searchUser as resultsUser" data-ng-if="user.id !== currentUser.id">\n              <div class="media-status">\n              </div>\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(user.id)">\n                <h4 class="media-heading">{{user.fullname | characters:15 :true}} {{user.internal}}</h4>\n                <div class="media-heading-small">\n                   <span class="badge badge-empty" data-ng-class="user.online ? \'badge-success\' : \'badge-danger\'"></span> {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{user.updatedAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="users.rows.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_USERS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="resultsUser.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_USERS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==2 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_USER\' | translate}}..." ng-model="searchChatRoomsExternals">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="chatRoom in chatRooms | filter:{type:\'external\'} | filter:searchChatRoomsExternals as resultsChatRoomsExternals">\n              <div class="media-status">\n                <!-- <span class="badge badge-success">3</span> -->\n              </div>\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(null, chatRoom.id)">\n                <h4 class="media-heading">{{chatRoom.ChatVisitor.email}}</h4>\n                <div class="media-heading-small">\n                   {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{chatRoom.createdAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" data-ng-if="resultsChatRoomsExternals.length === 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_CHATS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==3 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_USER\' | translate}}..." ng-model="searchChatRoomsGroups">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="chatRoom in chatRooms | filter:chatRoomsGroupsGreaterThan(2) | filter:searchChatRoomsGroups as resultsChatRoomsGroups">\n              <div class="media-status">\n                <!-- <span class="badge badge-success">3</span> -->\n              </div>\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(null, chatRoom.id)">\n                <h4 class="media-heading">{{chatRoom.name}}</h4>\n                <div class="media-heading-small">\n                   {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{chatRoom.updatedAt}}">April 1, 2014</time>\n                </div>\n                <div class="media-heading-small">\n                  <div data-ng-repeat="user in chatRoom.Users | map: \'fullname\'" class="inline">\n                    {{ $last ? user : user + \', \'}}\n                  </div>\n                </div>\n              </div>\n            </li>\n            <!-- <li class="media animate-repeat" ng-if="chatRooms.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_CHAT_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li> -->\n            <li class="media animate-repeat" data-ng-if="resultsChatRoomsGroups.length === 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_CHATS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat page-quick-sidebar-content-item-shown" ng-class="{active:messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list" >\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_MESSAGE\' | translate}}..." ng-model="searchMessage">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n        </div>\n        <div class="page-quick-sidebar-item">\n          <div class="page-quick-sidebar-chat-user" data-wrapper-class="page-quick-sidebar-list">\n            <div class="page-quick-sidebar-nav">\n                <a href="#" class="page-quick-sidebar-back-to-list" data-ng-click="goBack()"><i class="icon-arrow-left"></i>Back</a>\n            </div>\n            <div id="page-quick-sidebar-chat-user-messages" class="page-quick-sidebar-chat-user-messages" data-ng-style="style2" ng-scrollbars>\n              <div class="post animate-repeat" data-ng-repeat="chatMessage in chatRoom.ChatMessages | filter:searchMessage as resultsMessage" data-ng-class="chatMessage.UserId === currentUser.id ? \'in\' : \'out\'">\n                <img class="avatar" alt="" ng-src="api/users/avatar/unknown_avatar"/>\n                <div class="message">\n                  <span class="arrow"></span>\n                  <a href="#" class="name">{{chatMessage.User.fullname || chatMessage.ChatVisitor .fullname}}</a> -\n                  <span class="datetime">\n                    <time is="relative-time" datetime="{{chatMessage.createdAt}}">\n                      April 1, 2014\n                    </time>\n                  </span>\n                  <ng-emoticons class="body" emoticons-data="chatMessage.body" emoticons-options="options"/>\n                  <!-- <div class="body" ng-bind-html="chatMessage.body"></div>\n                  <!-- <div ng-bind-html="chatMessage.body | emoticons:{\'linkTarget\':\'_blank\',\'newLine\':true}" class="ng-emoticons"></div> --> -->\n                </div>\n              </div>\n\n              <div class="media-body" style="text-align: center;" data-ng-if="resultsMessage.length == 0">\n                <h5 class="media-heading"><i>{{\'MESSAGE_NO_MESSAGES_FOUND\' | translate | lowercase}}</i></h5>\n              </div>\n\n              <div class="media-body" style="text-align: center;" data-ng-if="chatRoom.status === \'close\'">\n                <h5 class="media-heading"><i>{{\'MESSAGE_CHAT_CLOSED\' | translate | lowercase}}</i></h5>\n              </div>\n\n            </div>\n            <div class="page-quick-sidebar-chat-user-form">\n              <textarea rows="3" class="form-control" style="border:none;resize: none;" placeholder="Type a message here..." ng-enter="sendMessage()" data-ng-model="message.body" data-ng-disabled="chatRoom.status === \'close\'"></textarea>\n              <div class="btn-group" style="width:100%;background-color:white">\n                <button type="button" class="btn btn-default" style="border:none" data-ng-disabled="chatRoom.status === \'close\'" data-ng-click="addAgent(chatRoom.id)"><i class="icon-plus font-blue"></i></button>\n                <button type="button" class="btn btn-default pull-right" style="border:none" data-ng-disabled="chatRoom.status === \'close\'" data-ng-click="closeChatRoom(chatRoom.id)" data-ng-show="chatRoom.type === \'external\'"><i class="icon-close font-red"></i></button>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n'),a.put("components/sidebar/sidebar.html",'<div id="page-sidebar" class="page-sidebar navbar-collapse collapse">\n  <!-- BEGIN SIDEBAR MENU -->\n  <!-- DOC: Apply "page-sidebar-menu-light" class right after "page-sidebar-menu" to enable light sidebar menu style(without borders) -->\n  <!-- DOC: Apply "page-sidebar-menu-hover-submenu" class right after "page-sidebar-menu" to enable hoverable(hover vs accordion) sub menu mode -->\n  <!-- DOC: Apply "page-sidebar-menu-closed" class right after "page-sidebar-menu" to collapse("page-sidebar-closed" class must be applied to the body element) the sidebar sub menu mode -->\n  <!-- DOC: Set data-auto-scroll="false" to disable the sidebar from auto scrolling/focusing -->\n  <!-- DOC: Set data-keep-expand="true" to keep the submenues expanded -->\n  <!-- DOC: Set data-auto-speed="200" to adjust the sub menu slide up/down speed -->\n  <ul data-ng-click="mainTab.active=true" class="page-sidebar-menu" data-keep-expanded="false" data-auto-scroll="true" data-slide-speed="200" data-ng-class="{\'page-sidebar-menu-closed\': settings.layout.pageSidebarClosed}">\n    <!-- DOC: To remove the search box from the sidebar you just need to completely remove the below "sidebar-search-wrapper" LI element -->\n    <li class="sidebar-search-wrapper">\n      <!-- BEGIN RESPONSIVE QUICK SEARCH FORM -->\n      <!-- DOC: Apply "sidebar-search-bordered" class the below search form to have bordered search box -->\n      <!-- DOC: Apply "sidebar-search-bordered sidebar-search-solid" class the below search form to have bordered & solid search box -->\n      <form class="sidebar-search sidebar-search-bordered" action="extra_search.html" method="POST">\n        <a href="javascript:;" class="remove">\n        <i class="icon-close"></i>\n        </a>\n        <!-- <div class="input-group">\n          <input type="text" class="form-control" placeholder="Search...">\n          <span class="input-group-btn">\n          <a href="javascript:;" class="btn submit"><i class="icon-magnifier"></i></a>\n          </span>\n        </div> -->\n      </form>\n      <!-- END RESPONSIVE QUICK SEARCH FORM -->\n    </li>\n\n    <!-- START DASHBOARD CASE -->\n    <li class="start" data-ng-show="isAssociated(\'dashboard\')" data-ng-class="{active: $state.is(\'main.dashboard\')}">\n      <a href="/dashboard/voice">\n        <i class="icon-rocket"></i>\n        <span class="title">{{\'APPLICATION_DASHBOARD\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.dashboard\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END DASHBOARD CASE -->\n\n    <!-- START YOURDASHBOARD LIST CASE -->\n    <li data-ng-class="{active: $state.is(\'main.yourdashboards.show\')}" data-ng-show="Auth.isAdmin()">\n      <a href="javascript:;">\n        <i class="icon-screen-desktop"></i>\n        <span class="title" >{{\'APPLICATION_YOUR_DASHBOARDS\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.yourdashboards.show\') }"></span>\n      </a>\n      <ul class="sub-menu" data-ng-init="getSidebarDashboards()">\n        <li data-ng-class="{active: $stateParams.id == dashboard.id && $state.includes(\'main.yourdashboards.show\')}" data-ng-repeat="dashboard in dashboards" data-ng-show="dashboard[Auth.getRole()] && dashboard.visible">\n          <a href="/yourdashboards/show/{{dashboard.id}}" >\n          <i class="icon-screen-tablet"></i>\n          <span class="title" >{{dashboard.name}}  </span>\n          </a>\n        </li>\n       </ul>\n    </li>\n    <!-- END YOURDASHBOARD LIST CASE -->\n\n    <!-- START STAFF SEPARATOR -->\n    <li class="heading" data-ng-show="Auth.isAdmin()">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_STAFF\' | translate}}  </span> </h3>\n    </li>\n    <!-- END STAFF SEPARATOR -->\n\n    <!-- START USERS CASE -->\n    <!-- <li data-ng-show="isAssociated(\'users\')" data-ng-class="{active: $state.includes(\'main.users\')}"> -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.users\')}">\n      <a href="/users/list">\n        <i class="icon-eye"></i>\n        <span class="title" >{{\'APPLICATION_USERS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.users\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END USERS CASE -->\n\n    <!-- START AGENTS CASE -->\n    <!-- <li data-ng-show="isAssociated(\'agents\')" data-ng-class="{active: $state.includes(\'main.agents\')}"> -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.agents\')}">\n      <a href="/agents/list">\n        <i class="icon-people"></i>\n        <span class="title" >{{\'APPLICATION_AGENTS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.agents\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END AGENTS CASE -->\n\n    <!-- START TEAMS CASE -->\n    <li data-ng-show="isAssociated(\'teams\')" data-ng-class="{active: $state.includes(\'main.teams\')}">\n      <a href="/teams/list">\n        <i class="icon-shield"></i>\n        <span class="title" >{{\'APPLICATION_TEAMS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.teams\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END TEAMS CASE -->\n    <!-- END STAFF SEPARATOR -->\n\n    <!-- START CONTACT_MANAGER SEPARATOR -->\n    <li class="heading" data-ng-show="Auth.isAdmin()">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_CONTACT_MANAGER\' | translate}}  </span> </h3>\n    </li>\n    <!-- END CONTACT_MANAGER SEPARATOR -->\n\n    <!-- START CONTACTS CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.contactmanager.contacts\')}">\n      <a href="/contactmanager/contacts/list">\n        <i class=" fa fa-users"></i>\n        <span class="title" >{{\'APPLICATION_CONTACTS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.contactmanager.contacts\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END CONTACTS CASE -->\n    <!-- START COMPANIES CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.contactmanager.companies\')}">\n      <a href="/contactmanager/companies/list">\n        <i class="icon-briefcase"></i>\n        <span class="title" >{{\'APPLICATION_COMPANIES\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.contactmanager.companies\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END COMPANIES CASE -->\n    <!-- END CONTACT_MANAGER SEPARATOR -->\n\n    <!-- START CHANNELS SEPARATOR -->\n    <li class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_CHANNELS\' | translate}}  </span> </h3>\n    </li>\n\n    <!-- START icon-link CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{ active: $state.includes(\'main.voice\') }">\n      <a href="javascript:;">\n        <i class="icon-earphones-alt"></i>\n        <span class="title">{{ \'APPLICATION_VOICE\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.voice\') }"></span>\n      </a>\n\n      <ul class="sub-menu">\n        <li data-ng-class="{active: $state.includes(\'main.voice.queues\')}">\n          <a href="/voice/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title">{{\'APPLICATION_QUEUES\' | translate}}</span>\n          </a>\n        </li>\n        <li>\n          <a href="javascript:;">\n          <i class="icon-directions"></i>\n          <span class="title"> {{ \'APPLICATION_ROUTES\' | translate}} </span>\n          <span class="arrow" data-ng-class="{ open: $state.includes(\'main.voice.routes\') }"></span>\n          <ul class="sub-menu">\n            <li data-ng-class="{active: $state.includes(\'main.voice.routes.inbound\')}">\n              <a href="/voice/routes/inbound/list">\n              <i class="icon-call-in"></i>\n              <span class="title"> {{\'APPLICATION_INBOUND\' | translate}} </span>\n              </a>\n            </li>\n            <li data-ng-class="{active: $state.includes(\'main.voice.routes.outbound\')}">\n              <a href="/voice/routes/outbound/list">\n              <i class="icon-call-out"></i>\n              <span class="title"> {{\'APPLICATION_OUTBOUND\' | translate}} </span>\n              </a>\n            </li>\n            <li data-ng-class="{active: $state.includes(\'main.voice.routes.internal\')}">\n              <a href="/voice/routes/internal/list">\n              <i class="icon-reload"></i>\n              <span class="title"> {{\'APPLICATION_INTERNALS\' | translate}} </span>\n              </a>\n            </li>\n          </ul>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.voice.contexts\')}">\n          <a href="/voice/contexts/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_CONTEXTS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.voice.voicemails\')}">\n          <a href="/voice/voicemails/list">\n          <i class="icon-envelope-letter"></i>\n          <span class="title"> {{\'APPLICATION_VOICEMAILS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.voice.mohs\')}">\n          <a href="/voice/mohs/list">\n          <i class="icon-music-tone"></i>\n          <span class="title"> {{\'APPLICATION_MOH\' | translate}} </span>\n          </a>\n        </li>\n        <!-- START REALTIME CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.voice.realtime\')}">\n          <a href="/voice/realtime/view/agents">\n          <i class="icon-energy"></i>\n          <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n          </a>\n        </li>\n        <!-- END REALTIME CASE -->\n      </ul>\n    </li>\n    <!-- END icon-link CASE -->\n\n    <!-- START CHAT CASE -->\n    <li data-ng-show="isAssociated(\'chat\')" data-ng-class="{ active: $state.includes(\'main.chat\') }">\n      <a href="javascript:;">\n        <i class="icon-bubble"></i>\n        <span class="title">{{\'APPLICATION_CHAT\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.chat\') }"></span>\n      </a>\n      <ul class="sub-menu">\n        <li data-ng-class="{active: $state.includes(\'main.chat.websites\')}">\n          <a href="/chat/websites/list">\n          <i class="icon-globe"></i>\n          <span class="title"> {{\'APPLICATION_WEB_SITES\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.chat.queues\')}">\n          <a href="/chat/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_QUEUES\' | translate}} </span>\n          </a>\n        </li>\n        <!-- START REALTIME CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.chat.realtime\')}">\n          <a href="/chat/realtime/view/agents/queues">\n          <i class="icon-energy"></i>\n          <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n          </a>\n        </li>\n        <!-- END REALTIME CASE -->\n      </ul>\n    </li>\n    <!-- END CHAT CASE -->\n\n    <!-- START MAIL CASE -->\n    <li data-ng-class="{ active: $state.includes(\'main.mail\') }">\n      <a href="javascript:;">\n        <i class="icon-envelope"></i>\n        <span class="title">{{\'APPLICATION_MAIL\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.mail\') }"></span>\n      </a>\n\n      <ul class="sub-menu">\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.accounts\') || $state.includes(\'main.mail.account\')}">\n          <a href="/mail/accounts/list">\n          <i class="icon-notebook"></i>\n          <span class="title"> {{\'APPLICATION_ACCOUNTS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.queues\') || $state.includes(\'main.mail.queue\')}">\n          <a href="/mail/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_QUEUES\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.mail.inbox\')}">\n          <a href="/mail/inbox/incoming">\n          <i class="icon-note"></i>\n          <span class="title"> {{\'APPLICATION_INBOX\' | translate}} </span>\n          </a>\n        </li>\n        <!-- <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.statistics\')}">\n          <a href="/mail/statistics/summary">\n          <i class="icon-eyeglass"></i>\n          <span class="title"> {{\'APPLICATION_STATISTICS\' | translate}} </span>\n          </a>\n        </li> -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.templates\')}">\n          <a href="/mail/templates/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_TEMPLATES\' | translate}} </span>\n          </a>\n        </li>\n        <!-- <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.timeline\')}">\n          <a href="/mail/timeline/list">\n          <i class="icon-list"></i>\n          <span class="title"> {{\'APPLICATION_TIMELINE\' | translate}} </span>\n          </a>\n        </li> -->\n        <!-- START REALTIME CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.realtime\')}">\n          <a href="/mail/realtime/view/agents/queues">\n          <i class="icon-energy"></i>\n          <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n          </a>\n        </li>\n        <!-- END REALTIME CASE -->\n      </ul>\n    </li>\n    <!-- END MAIL CASE -->\n\n    <!-- START FAX CASE -->\n    <li data-ng-class="{active: $state.includes(\'main.fax\')}">\n    <!-- <li data-ng-show="license.fax" data-ng-class="{active: $state.includes(\'main.fax\')}"> -->\n      <a href="javascript:;">\n        <i class="icon-paper-plane"></i>\n        <span class="title"> {{ \'APPLICATION_FAX\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.fax\') }"></span>\n      </a>\n\n      <ul class="sub-menu">\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.accounts\')}">\n          <a href="/fax/accounts/list">\n          <i class="icon-notebook"></i>\n          <span class="title"> {{ \'APPLICATION_ACCOUNTS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.queues\')}">\n          <a href="/fax/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{ \'APPLICATION_QUEUES\' | translate }} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.fax.inbox\')}">\n          <a href="/fax/inbox/incoming">\n          <i class="icon-note"></i>\n          <span class="title"> {{ \'APPLICATION_INBOX\' | translate }} </span>\n          </a>\n        </li>\n        <!-- <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.statistics\')}">\n          <a href="/fax/statistics/summary">\n          <i class="icon-eyeglass"></i>\n          <span class="title"> {{ \'APPLICATION_STATISTICS\' | translate }} </span>\n          </a>\n        </li> -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.automations\')}">\n          <a href="/fax/automations/list">\n          <i class="icon-settings"></i>\n          <span class="title"> {{\'APPLICATION_AUTOMATIONS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.timeline\')}">\n          <a href="/fax/timeline/list">\n          <i class="icon-list"></i>\n          <span class="title"> {{\'APPLICATION_TIMELINE\' | translate}} </span>\n          </a>\n        </li>\n      </ul>\n    </li>\n    <!-- END FAX CASE -->\n    <!-- END CHANNELS SEPARATOR -->\n\n    <!-- START INTEGRATIONS SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span translate> APPLICATION_INTEGRATIONS </span> </h3>\n    </li>\n    <!-- START INTEGRATION CASE -->\n    <!--\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.is(\'main.market\')}">\n      <a href="/market">\n        <i class="icon-handbag"></i>\n        <span class="title" translate>Market Place</span>\n        <span data-ng-show="$state.includes(\'main.market\')" class="selected"></span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.is(\'main.integrations.list\')}">\n      <a href="/integrations/list">\n        <i class="icon-game-controller"></i>\n        <span class="title" translate>Test Your App</span>\n        <span data-ng-show="$state.includes(\'main.integrations.list\')" class="selected"></span>\n      </a>\n    </li>\n    -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.zendesk\')}">\n      <a href="/zendesk/list">\n        <i class="icon-handbag"></i>\n        <span class="title" >{{\'APPLICATION_ZENDESK\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.zendesk\')" class="selected"></span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.desk\')}">\n      <a href="/desk/list">\n        <i class="icon-handbag"></i>\n        <span class="title" >{{\'APPLICATION_DESK_COM\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.desk\')" class="selected"></span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.salesforce\')}">\n      <a href="/salesforce/list">\n        <i class="icon-handbag"></i>\n        <span class="title" >{{\'APPLICATION_SALESFORCE\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.salesforce\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END INTEGRATIONS SEPARATOR -->\n\n    <!-- START TOOLS SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_TOOLS\' | translate}}  </span> </h3>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.triggers\')}">\n      <a href="/triggers/list">\n      <i class="icon-bulb"></i>\n      <span class="title"> {{\'APPLICATION_TRIGGERS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.automations\')}">\n      <a href="/automations/list">\n      <i class="icon-settings"></i>\n      <span class="title"> {{\'APPLICATION_AUTOMATIONS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.trunks\')}">\n      <a href="/trunks/list">\n      <i class="icon-link"></i>\n      <span class="title"> {{\'APPLICATION_TRUNKS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.intervals\')}">\n      <a href="/intervals/list">\n      <i class="icon-clock"></i>\n      <span class="title"> {{\'APPLICATION_INTERVALS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.variables\')}">\n      <a href="/variables/list">\n      <i class="fa fa-eye"></i>\n      <span class="title" >{{\'APPLICATION_VARIABLES\' | translate}}  </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tags\')}">\n      <a href="/tags/list">\n      <i class="icon-tag"></i>\n      <span class="title" >{{\'APPLICATION_TAGS\' | translate}}  </span>\n      </a>\n    </li>\n    <!-- START CALLYSQUARE CASE -->\n    <!-- <li data-ng-show="isAssociated(\'callysquare\')" data-ng-class="{active: $state.includes(\'main.square\')}"> -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.square\')}">\n      <a href="javascript:;">\n        <i class="fa fa-superscript"></i>\n        <span class="title" >{{\'APPLICATION_CALLYSQUARE\' | translate}}</span>\n        <span class="arrow"></span>\n      </a>\n      <ul class="sub-menu">\n        <li data-ng-class="{active: $state.includes(\'main.square.projects\')}">\n          <a href="/square/projects/list">\n          <i class="fa fa-slack"></i>\n          <span class="title" >{{\'APPLICATION_PROJECTS\' | translate}}  </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.square.odbc\')}">\n          <a href="/square/odbcs/list">\n          <i class="fa fa-database"></i>\n          <span class="title" >{{\'APPLICATION_ODBC\' | translate}}  </span>\n          </a>\n        </li>\n       </ul>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.yourdashboards.list\') || $state.includes(\'main.yourdashboards.settings\')}">\n      <a href="/yourdashboards/list">\n      <i class="icon-grid"></i>\n      <span class="title"> {{\'APPLICATION_DASHBOARDS_MANAGER\' | translate}} </span>\n      </a>\n    </li>\n    <!-- END CALLYSQUARE CASE -->\n\n    <!-- START AUTODIALER CASE -->\n    <!-- <li data-ng-show="Auth.isAdmin()">\n      <a href="javascript:;">\n        <i class="icon-call-out"></i>\n        <span class="title">AutoDialer</span>\n        <span class="arrow"></span>\n      </a>\n      <ul class="sub-menu">\n      </ul>\n    </li> -->\n    <!-- END AUTODIALER CASE -->\n\n    <!-- START ANALYTICS CASE -->\n    <!-- <li data-ng-show="isAssociated(\'analytics\')"> -->\n    <!-- <li data-ng-show="Auth.isAdmin()">\n      <a href="#/analytics">\n        <i class="icon-graph"></i>\n        <span class="title" >{{\'APPLICATION_ANALYTICS\' | translate}}</span>\n      </a>\n    </li> -->\n    <!-- END ANALYTICS CASE -->\n\n    <!-- END TOOLS SEPARATOR -->\n\n    <!-- START AUDIO SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_AUDIO\' | translate}}  </span> </h3>\n    </li>\n    <!-- END AUDIO SEPARATOR -->\n\n    <!-- START AUDIO CASE -->\n    <!-- <li data-ng-show="isAssociated(\'audio\')" data-ng-class="{active: $state.is(\'main.sound\')}"> -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.sounds\')}">\n      <a href="/sounds/list">\n        <i class="icon-music-tone-alt"></i>\n        <span class="title" >{{\'APPLICATION_SOUNDS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.sounds\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END AUDIO CASE -->\n\n\n    <!-- START SETTINGS SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_SETTINGS\' | translate}}  </span> </h3>\n    </li>\n    <!-- END SETTINGS SEPARATOR -->\n\n    <!-- START UPDATES CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.updates\')}">\n      <a href="/updates/list">\n        <i class="icon-cloud-download"></i>\n        <span class="title" >{{\'APPLICATION_UPDATES\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.updates\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END UPDATES CASE -->\n\n  </ul>\n  <!-- END SIDEBAR MENU -->\n</div>\n');
-}]);
\ No newline at end of file
diff --git a/public/app/dc39fef2.app.css b/public/app/dc39fef2.app.css
new file mode 100644
index 0000000..0c8df70
--- /dev/null
+++ b/public/app/dc39fef2.app.css
@@ -0,0 +1 @@
\ No newline at end of file
diff --git a/public/app/fa0dad2a.vendor.js b/public/app/fa0dad2a.vendor.js
new file mode 100644
index 0000000..8cc2f87
--- /dev/null
+++ b/public/app/fa0dad2a.vendor.js
@@ -0,0 +1,97 @@
+c.knockout&&b("Knockout groups not supported.");var e=d.mozCurrentTransform;c.matrix&&d.transform.apply(d,c.matrix),f(c.bbox,"Bounding box is required.");var g=T.getAxialAlignedBoundingBox(c.bbox,d.mozCurrentTransform),i=[0,0,d.canvas.width,d.canvas.height];g=T.intersect(g,i)||[0,0,0,0];var j=Math.floor(g[0]),k=Math.floor(g[1]),l=Math.max(Math.ceil(g[2])-j,1),m=Math.max(Math.ceil(g[3])-k,1),n=1,o=1;l>da&&(n=l/da,l=da),m>da&&(o=m/da,m=da);var p="groupAt"+this.groupLevel;c.smask&&(p+="_smask_"+this.smaskCounter++%2);var q=ia.getCanvas(p,l,m,!0),r=q.context;r.scale(1/n,1/o),r.translate(-j,-k),r.transform.apply(r,e),c.smask?this.smaskStack.push({canvas:q.canvas,context:r,offsetX:j,offsetY:k,scaleX:n,scaleY:o,subtype:c.smask.subtype,backdrop:c.smask.backdrop}):(d.setTransform(1,0,0,1,0,0),d.translate(j,k),d.scale(n,o)),h(d,r),this.ctx=r,this.setGState([["BM","Normal"],["ca",1],["CA",1]]),this.groupStack.push(d),this.groupLevel++},endGroup:function(a){this.groupLevel--;var b=this.ctx;this.ctx=this.groupStack.pop(),void 0!==this.ctx.imageSmoothingEnabled?this.ctx.imageSmoothingEnabled=!1:this.ctx.mozImageSmoothingEnabled=!1,a.smask?this.tempSMask=this.smaskStack.pop():this.ctx.drawImage(b.canvas,0,0),this.restore()},beginAnnotations:function(){this.save(),this.current=new ja},endAnnotations:function(){this.restore()},beginAnnotation:function(a,b,c){if(this.save(),q(a)&&4===a.length){var d=a[2]-a[0],e=a[3]-a[1];this.ctx.rect(a[0],a[1],d,e),this.clip(),this.endPath()}this.transform.apply(this,b),this.transform.apply(this,c)},endAnnotation:function(){this.restore()},paintJpegXObject:function(a,c,d){var e=this.objs.get(a);if(!e)return void b("Dependent image isn't ready yet");this.save();var f=this.ctx;if(f.scale(1/c,-1/d),f.drawImage(e,0,0,e.width,e.height,0,-d,c,d),this.imageLayer){var g=f.mozCurrentTransformInverse,h=this.getCanvasPosition(0,0);this.imageLayer.appendImage({objId:a,left:h[0],top:h[1],width:c/g[0],height:d/g[3]})}this.restore()},paintImageMaskXObject:function(a){var b=this.ctx,c=a.width,d=a.height,e=this.current.fillColor,f=this.current.patternFill,h=this.processingType3;if(fa&&h&&void 0===h.compiled&&(ga>=c&&ga>=d?h.compiled=x({data:a.data,width:c,height:d}):h.compiled=null),h&&h.compiled)return void h.compiled(b);var i=ia.getCanvas("maskCanvas",c,d),j=i.context;j.save(),g(j,a),j.globalCompositeOperation="source-in",j.fillStyle=f?e.getPattern(j,this):e,j.fillRect(0,0,c,d),j.restore(),this.paintInlineImageXObject(i.canvas)},paintImageMaskXObjectRepeat:function(a,b,c,d){var e=a.width,f=a.height,h=this.current.fillColor,i=this.current.patternFill,j=ia.getCanvas("maskCanvas",e,f),k=j.context;k.save(),g(k,a),k.globalCompositeOperation="source-in",k.fillStyle=i?h.getPattern(k,this):h,k.fillRect(0,0,e,f),k.restore();for(var l=this.ctx,m=0,n=d.length;n>m;m+=2)l.save(),l.transform(b,0,0,c,d[m],d[m+1]),l.scale(1,-1),l.drawImage(j.canvas,0,0,e,f,0,-1,1,1),l.restore()},paintImageMaskXObjectGroup:function(a){for(var b=this.ctx,c=this.current.fillColor,d=this.current.patternFill,e=0,f=a.length;f>e;e++){var h=a[e],i=h.width,j=h.height,k=ia.getCanvas("maskCanvas",i,j),l=k.context;l.save(),g(l,h),l.globalCompositeOperation="source-in",l.fillStyle=d?c.getPattern(l,this):c,l.fillRect(0,0,i,j),l.restore(),b.save(),b.transform.apply(b,h.transform),b.scale(1,-1),b.drawImage(k.canvas,0,0,i,j,0,-1,1,1),b.restore()}},paintImageXObject:function(a){var c=this.objs.get(a);return c?void this.paintInlineImageXObject(c):void b("Dependent image isn't ready yet")},paintImageXObjectRepeat:function(a,c,d,e){var f=this.objs.get(a);if(!f)return void b("Dependent image isn't ready yet");for(var g=f.width,h=f.height,i=[],j=0,k=e.length;k>j;j+=2)i.push({transform:[c,0,0,d,e[j],e[j+1]],x:0,y:0,w:g,h:h});this.paintInlineImageXObjectGroup(f,i)},paintInlineImageXObject:function(a){var b=a.width,c=a.height,d=this.ctx;this.save(),d.scale(1/b,-1/c);var f,g,h=d.mozCurrentTransformInverse,i=h[0],j=h[1],k=Math.max(Math.sqrt(i*i+j*j),1),l=h[2],m=h[3],n=Math.max(Math.sqrt(l*l+m*m),1);if(a instanceof HTMLElement||!a.data)f=a;else{g=ia.getCanvas("inlineImage",b,c);var o=g.context;e(o,a),f=g.canvas}for(var p=b,q=c,r="prescale1";k>2&&p>1||n>2&&q>1;){var s=p,t=q;k>2&&p>1&&(s=Math.ceil(p/2),k/=p/s),n>2&&q>1&&(t=Math.ceil(q/2),n/=q/t),g=ia.getCanvas(r,s,t),o=g.context,o.clearRect(0,0,s,t),o.drawImage(f,0,0,p,q,0,0,s,t),f=g.canvas,p=s,q=t,r="prescale1"===r?"prescale2":"prescale1"}if(d.drawImage(f,0,0,p,q,0,-c,b,c),this.imageLayer){var u=this.getCanvasPosition(0,-c);this.imageLayer.appendImage({imgData:a,left:u[0],top:u[1],width:b/h[0],height:c/h[3]})}this.restore()},paintInlineImageXObjectGroup:function(a,b){var c=this.ctx,d=a.width,f=a.height,g=ia.getCanvas("inlineImage",d,f),h=g.context;e(h,a);for(var i=0,j=b.length;j>i;i++){var k=b[i];if(c.save(),c.transform.apply(c,k.transform),c.scale(1,-1),c.drawImage(g.canvas,k.x,k.y,k.w,k.h,0,-1,1,1),this.imageLayer){var l=this.getCanvasPosition(k.x,k.y);this.imageLayer.appendImage({imgData:a,left:l[0],top:l[1],width:d,height:f})}c.restore()}},paintSolidColorImageMask:function(){this.ctx.fillRect(0,0,1,1)},paintXObject:function(){I.notify(H.unknown),b("Unsupported 'paintXObject' command.")},markPoint:function(a){},markPointProps:function(a,b){},beginMarkedContent:function(a){},beginMarkedContentProps:function(a,b){},endMarkedContent:function(){},beginCompat:function(){},endCompat:function(){},consumePath:function(){var a=this.ctx;this.pendingClip&&(this.pendingClip===v?void 0!==a.mozFillRule?(a.mozFillRule="evenodd",a.clip(),a.mozFillRule="nonzero"):a.clip("evenodd"):a.clip(),this.pendingClip=null),a.beginPath()},getSinglePixelWidth:function(a){if(null===this.cachedGetSinglePixelWidth){var b=this.ctx.mozCurrentTransformInverse;this.cachedGetSinglePixelWidth=Math.sqrt(Math.max(b[0]*b[0]+b[1]*b[1],b[2]*b[2]+b[3]*b[3]))}return this.cachedGetSinglePixelWidth},getCanvasPosition:function(a,b){var c=this.ctx.mozCurrentTransform;return[c[0]*a+c[2]*b+c[4],c[1]*a+c[3]*b+c[5]]}};for(var z in G)c.prototype[G[z]]=c.prototype[z];return c}(),la=function(){function a(a,b,c){var d=a.createShader(c);a.shaderSource(d,b),a.compileShader(d);var e=a.getShaderParameter(d,a.COMPILE_STATUS);if(!e){var f=a.getShaderInfoLog(d);throw new Error("Error during shader compilation: "+f)}return d}function b(b,c){return a(b,c,b.VERTEX_SHADER)}function c(b,c){return a(b,c,b.FRAGMENT_SHADER)}function d(a,b){for(var c=a.createProgram(),d=0,e=b.length;e>d;++d)a.attachShader(c,b[d]);a.linkProgram(c);var f=a.getProgramParameter(c,a.LINK_STATUS);if(!f){var g=a.getProgramInfoLog(c);throw new Error("Error during program linking: "+g)}return c}function e(a,b,c){a.activeTexture(c);var d=a.createTexture();return a.bindTexture(a.TEXTURE_2D,d),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.NEAREST),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,b),d}function f(){m||(n=document.createElement("canvas"),m=n.getContext("webgl",{premultipliedalpha:!1}))}function g(){var a,e;f(),a=n,n=null,e=m,m=null;var g=b(e,o),h=c(e,p),i=d(e,[g,h]);e.useProgram(i);var j={};j.gl=e,j.canvas=a,j.resolutionLocation=e.getUniformLocation(i,"u_resolution"),j.positionLocation=e.getAttribLocation(i,"a_position"),j.backdropLocation=e.getUniformLocation(i,"u_backdrop"),j.subtypeLocation=e.getUniformLocation(i,"u_subtype");var k=e.getAttribLocation(i,"a_texCoord"),l=e.getUniformLocation(i,"u_image"),r=e.getUniformLocation(i,"u_mask"),s=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,s),e.bufferData(e.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),e.STATIC_DRAW),e.enableVertexAttribArray(k),e.vertexAttribPointer(k,2,e.FLOAT,!1,0,0),e.uniform1i(l,0),e.uniform1i(r,1),q=j}function h(a,b,c){var d=a.width,f=a.height;q||g();var h=q,i=h.canvas,j=h.gl;i.width=d,i.height=f,j.viewport(0,0,j.drawingBufferWidth,j.drawingBufferHeight),j.uniform2f(h.resolutionLocation,d,f),c.backdrop?j.uniform4f(h.resolutionLocation,c.backdrop[0],c.backdrop[1],c.backdrop[2],1):j.uniform4f(h.resolutionLocation,0,0,0,0),j.uniform1i(h.subtypeLocation,"Luminosity"===c.subtype?1:0);var k=e(j,a,j.TEXTURE0),l=e(j,b,j.TEXTURE1),m=j.createBuffer();return j.bindBuffer(j.ARRAY_BUFFER,m),j.bufferData(j.ARRAY_BUFFER,new Float32Array([0,0,d,0,0,f,0,f,d,0,d,f]),j.STATIC_DRAW),j.enableVertexAttribArray(h.positionLocation),j.vertexAttribPointer(h.positionLocation,2,j.FLOAT,!1,0,0),j.clearColor(0,0,0,0),j.enable(j.BLEND),j.blendFunc(j.ONE,j.ONE_MINUS_SRC_ALPHA),j.clear(j.COLOR_BUFFER_BIT),j.drawArrays(j.TRIANGLES,0,6),j.flush(),j.deleteTexture(k),j.deleteTexture(l),j.deleteBuffer(m),i}function j(){var a,e;f(),a=n,n=null,e=m,m=null;var g=b(e,r),h=c(e,s),i=d(e,[g,h]);e.useProgram(i);var j={};j.gl=e,j.canvas=a,j.resolutionLocation=e.getUniformLocation(i,"u_resolution"),j.scaleLocation=e.getUniformLocation(i,"u_scale"),j.offsetLocation=e.getUniformLocation(i,"u_offset"),j.positionLocation=e.getAttribLocation(i,"a_position"),j.colorLocation=e.getAttribLocation(i,"a_color"),t=j}function k(a,b,c,d,e){t||j();var f=t,g=f.canvas,h=f.gl;g.width=a,g.height=b,h.viewport(0,0,h.drawingBufferWidth,h.drawingBufferHeight),h.uniform2f(f.resolutionLocation,a,b);var i,k,l,m=0;for(i=0,k=d.length;k>i;i++)switch(d[i].type){case"lattice":l=d[i].coords.length/d[i].verticesPerRow|0,m+=(l-1)*(d[i].verticesPerRow-1)*6;break;case"triangles":m+=d[i].coords.length}var n=new Float32Array(2*m),o=new Uint8Array(3*m),p=e.coords,q=e.colors,r=0,s=0;for(i=0,k=d.length;k>i;i++){var u=d[i],v=u.coords,w=u.colors;switch(u.type){case"lattice":var x=u.verticesPerRow;l=v.length/x|0;for(var y=1;l>y;y++)for(var z=y*x+1,A=1;x>A;A++,z++)n[r]=p[v[z-x-1]],n[r+1]=p[v[z-x-1]+1],n[r+2]=p[v[z-x]],n[r+3]=p[v[z-x]+1],n[r+4]=p[v[z-1]],n[r+5]=p[v[z-1]+1],o[s]=q[w[z-x-1]],o[s+1]=q[w[z-x-1]+1],o[s+2]=q[w[z-x-1]+2],o[s+3]=q[w[z-x]],o[s+4]=q[w[z-x]+1],o[s+5]=q[w[z-x]+2],o[s+6]=q[w[z-1]],o[s+7]=q[w[z-1]+1],o[s+8]=q[w[z-1]+2],n[r+6]=n[r+2],n[r+7]=n[r+3],n[r+8]=n[r+4],n[r+9]=n[r+5],n[r+10]=p[v[z]],n[r+11]=p[v[z]+1],o[s+9]=o[s+3],o[s+10]=o[s+4],o[s+11]=o[s+5],o[s+12]=o[s+6],o[s+13]=o[s+7],o[s+14]=o[s+8],o[s+15]=q[w[z]],o[s+16]=q[w[z]+1],o[s+17]=q[w[z]+2],r+=12,s+=18;break;case"triangles":for(var B=0,C=v.length;C>B;B++)n[r]=p[v[B]],n[r+1]=p[v[B]+1],o[s]=q[w[B]],o[s+1]=q[w[B]+1],o[s+2]=q[w[B]+2],r+=2,s+=3}}c?h.clearColor(c[0]/255,c[1]/255,c[2]/255,1):h.clearColor(0,0,0,0),h.clear(h.COLOR_BUFFER_BIT);var D=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,D),h.bufferData(h.ARRAY_BUFFER,n,h.STATIC_DRAW),h.enableVertexAttribArray(f.positionLocation),h.vertexAttribPointer(f.positionLocation,2,h.FLOAT,!1,0,0);var E=h.createBuffer();return h.bindBuffer(h.ARRAY_BUFFER,E),h.bufferData(h.ARRAY_BUFFER,o,h.STATIC_DRAW),h.enableVertexAttribArray(f.colorLocation),h.vertexAttribPointer(f.colorLocation,3,h.UNSIGNED_BYTE,!1,0,0),h.uniform2f(f.scaleLocation,e.scaleX,e.scaleY),h.uniform2f(f.offsetLocation,e.offsetX,e.offsetY),h.drawArrays(h.TRIANGLES,0,m),h.flush(),h.deleteBuffer(D),h.deleteBuffer(E),g}function l(){q&&q.canvas&&(q.canvas.width=0,q.canvas.height=0),t&&t.canvas&&(t.canvas.width=0,t.canvas.height=0),q=null,t=null}var m,n,o="  attribute vec2 a_position;                                      attribute vec2 a_texCoord;                                                                                                      uniform vec2 u_resolution;                                                                                                      varying vec2 v_texCoord;                                                                                                        void main() {                                                     vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0;       gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);                                                                              v_texCoord = a_texCoord;                                      }                                                             ",p="  precision mediump float;                                                                                                        uniform vec4 u_backdrop;                                        uniform int u_subtype;                                          uniform sampler2D u_image;                                      uniform sampler2D u_mask;                                                                                                       varying vec2 v_texCoord;                                                                                                        void main() {                                                     vec4 imageColor = texture2D(u_image, v_texCoord);               vec4 maskColor = texture2D(u_mask, v_texCoord);                 if (u_backdrop.a > 0.0) {                                         maskColor.rgb = maskColor.rgb * maskColor.a +                                   u_backdrop.rgb * (1.0 - maskColor.a);         }                                                               float lum;                                                      if (u_subtype == 0) {                                             lum = maskColor.a;                                            } else {                                                          lum = maskColor.r * 0.3 + maskColor.g * 0.59 +                        maskColor.b * 0.11;                                     }                                                               imageColor.a *= lum;                                            imageColor.rgb *= imageColor.a;                                 gl_FragColor = imageColor;                                    }                                                             ",q=null,r="  attribute vec2 a_position;                                      attribute vec3 a_color;                                                                                                         uniform vec2 u_resolution;                                      uniform vec2 u_scale;                                           uniform vec2 u_offset;                                                                                                          varying vec4 v_color;                                                                                                           void main() {                                                     vec2 position = (a_position + u_offset) * u_scale;              vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0;         gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);                                                                              v_color = vec4(a_color / 255.0, 1.0);                         }                                                             ",s="  precision mediump float;                                                                                                        varying vec4 v_color;                                                                                                           void main() {                                                     gl_FragColor = v_color;                                       }                                                             ",t=null;return{get isEnabled(){if(PDFJS.disableWebGL)return!1;var a=!1;try{f(),a=!!m}catch(b){}return i(this,"isEnabled",a)},composeSMask:h,drawFigures:k,clear:l}}(),ma={};ma.RadialAxial={fromIR:function(a){var b=a[1],c=a[2],d=a[3],e=a[4],f=a[5],g=a[6];return{type:"Pattern",getPattern:function(a){var h;"axial"===b?h=a.createLinearGradient(d[0],d[1],e[0],e[1]):"radial"===b&&(h=a.createRadialGradient(d[0],d[1],f,e[0],e[1],g));for(var i=0,j=c.length;j>i;++i){var k=c[i];h.addColorStop(k[0],k[1])}return h}}}};var na=function(){function a(a,b,c,d,e,f,g,h){var i,j=b.coords,k=b.colors,l=a.data,m=4*a.width;j[c+1]>j[d+1]&&(i=c,c=d,d=i,i=f,f=g,g=i),j[d+1]>j[e+1]&&(i=d,d=e,e=i,i=g,g=h,h=i),j[c+1]>j[d+1]&&(i=c,c=d,d=i,i=f,f=g,g=i);var n=(j[c]+b.offsetX)*b.scaleX,o=(j[c+1]+b.offsetY)*b.scaleY,p=(j[d]+b.offsetX)*b.scaleX,q=(j[d+1]+b.offsetY)*b.scaleY,r=(j[e]+b.offsetX)*b.scaleX,s=(j[e+1]+b.offsetY)*b.scaleY;if(!(o>=s))for(var t,u,v,w,x,y,z,A,B,C=k[f],D=k[f+1],E=k[f+2],F=k[g],G=k[g+1],H=k[g+2],I=k[h],J=k[h+1],K=k[h+2],L=Math.round(o),M=Math.round(s),N=L;M>=N;N++){q>N?(B=o>N?0:o===q?1:(o-N)/(o-q),t=n-(n-p)*B,u=C-(C-F)*B,v=D-(D-G)*B,w=E-(E-H)*B):(B=N>s?1:q===s?0:(q-N)/(q-s),t=p-(p-r)*B,u=F-(F-I)*B,v=G-(G-J)*B,w=H-(H-K)*B),B=o>N?0:N>s?1:(o-N)/(o-s),x=n-(n-r)*B,y=C-(C-I)*B,z=D-(D-J)*B,A=E-(E-K)*B;for(var O=Math.round(Math.min(t,x)),P=Math.round(Math.max(t,x)),Q=m*N+4*O,R=O;P>=R;R++)B=(t-R)/(t-x),B=0>B?0:B>1?1:B,l[Q++]=u-(u-y)*B|0,l[Q++]=v-(v-z)*B|0,l[Q++]=w-(w-A)*B|0,l[Q++]=255}}function b(b,c,e){var f,g,h=c.coords,i=c.colors;switch(c.type){case"lattice":var j=c.verticesPerRow,k=Math.floor(h.length/j)-1,l=j-1;for(f=0;k>f;f++)for(var m=f*j,n=0;l>n;n++,m++)a(b,e,h[m],h[m+1],h[m+j],i[m],i[m+1],i[m+j]),a(b,e,h[m+j+1],h[m+1],h[m+j],i[m+j+1],i[m+1],i[m+j]);break;case"triangles":for(f=0,g=h.length;g>f;f+=3)a(b,e,h[f],h[f+1],h[f+2],i[f],i[f+1],i[f+2]);break;default:d("illigal figure")}}function c(a,c,d,e,f,g){var h,i,j,k,l=1.1,m=3e3,n=Math.floor(a[0]),o=Math.floor(a[1]),p=Math.ceil(a[2])-n,q=Math.ceil(a[3])-o,r=Math.min(Math.ceil(Math.abs(p*c[0]*l)),m),s=Math.min(Math.ceil(Math.abs(q*c[1]*l)),m),t=p/r,u=q/s,v={coords:d,colors:e,offsetX:-n,offsetY:-o,scaleX:1/t,scaleY:1/u};if(la.isEnabled)h=la.drawFigures(r,s,g,f,v),i=ia.getCanvas("mesh",r,s,!1),i.context.drawImage(h,0,0),h=i.canvas;else{i=ia.getCanvas("mesh",r,s,!1);var w=i.context,x=w.createImageData(r,s);if(g){var y=x.data;for(j=0,k=y.length;k>j;j+=4)y[j]=g[0],y[j+1]=g[1],y[j+2]=g[2],y[j+3]=255}for(j=0;j<f.length;j++)b(x,f[j],v);w.putImageData(x,0,0),h=i.canvas}return{canvas:h,offsetX:n,offsetY:o,scaleX:t,scaleY:u}}return c}();ma.Mesh={fromIR:function(a){var b=a[2],c=a[3],d=a[4],e=a[5],f=a[6],g=a[8];return{type:"Pattern",getPattern:function(a,h,i){var j;if(i)j=T.singularValueDecompose2dScale(a.mozCurrentTransform);else if(j=T.singularValueDecompose2dScale(h.baseTransform),f){var k=T.singularValueDecompose2dScale(f);j=[j[0]*k[0],j[1]*k[1]]}var l=na(e,j,b,c,d,i?null:g);return i||(a.setTransform.apply(a,h.baseTransform),f&&a.transform.apply(a,f)),a.translate(l.offsetX,l.offsetY),a.scale(l.scaleX,l.scaleY),a.createPattern(l.canvas,"no-repeat")}}}},ma.Dummy={fromIR:function(){return{type:"Pattern",getPattern:function(){return"hotpink"}}}};var oa=function(){function b(a,b,c,d,e,f){this.operatorList=a[2],this.matrix=a[3]||[1,0,0,1,0,0],this.bbox=a[4],this.xstep=a[5],this.ystep=a[6],this.paintType=a[7],this.tilingType=a[8],this.color=b,this.objs=d,this.commonObjs=e,this.baseTransform=f,this.type="Pattern",this.ctx=c}var c={COLORED:1,UNCOLORED:2},e=3e3;return b.prototype={createPatternCanvas:function(b){var c=this.operatorList,d=this.bbox,f=this.xstep,g=this.ystep,h=this.paintType,i=this.tilingType,j=this.color,k=this.objs,l=this.commonObjs;a("TilingType: "+i);var m=d[0],n=d[1],o=d[2],p=d[3],q=[m,n],r=[m+f,n+g],s=r[0]-q[0],t=r[1]-q[1],u=T.singularValueDecompose2dScale(this.matrix),v=T.singularValueDecompose2dScale(this.baseTransform),w=[u[0]*v[0],u[1]*v[1]];s=Math.min(Math.ceil(Math.abs(s*w[0])),e),t=Math.min(Math.ceil(Math.abs(t*w[1])),e);var x=ia.getCanvas("pattern",s,t,!0),y=x.context,z=new ka(y,l,k);z.groupLevel=b.groupLevel,this.setFillAndStrokeStyleToContext(y,h,j),this.setScale(s,t,f,g),this.transformToScale(z);var A=[1,0,0,1,-q[0],-q[1]];return z.transform.apply(z,A),this.clipBbox(z,d,m,n,o,p),z.executeOperatorList(c),x.canvas},setScale:function(a,b,c,d){this.scale=[a/c,b/d]},transformToScale:function(a){var b=this.scale,c=[b[0],0,0,b[1],0,0];a.transform.apply(a,c)},scaleToContext:function(){var a=this.scale;this.ctx.scale(1/a[0],1/a[1])},clipBbox:function(a,b,c,d,e,f){if(b&&q(b)&&4===b.length){var g=e-c,h=f-d;a.ctx.rect(c,d,g,h),a.clip(),a.endPath()}},setFillAndStrokeStyleToContext:function(a,b,e){switch(b){case c.COLORED:var f=this.ctx;a.fillStyle=f.fillStyle,a.strokeStyle=f.strokeStyle;break;case c.UNCOLORED:var g=T.makeCssRgb(e[0],e[1],e[2]);a.fillStyle=g,a.strokeStyle=g;break;default:d("Unsupported paint type: "+b)}},getPattern:function(a,b){var c=this.createPatternCanvas(b);return a=this.ctx,a.setTransform.apply(a,this.baseTransform),a.transform.apply(a,this.matrix),this.scaleToContext(),a.createPattern(c,"repeat")}},b}();PDFJS.disableFontFace=!1;var pa={insertRule:function(a){var b=document.getElementById("PDFJS_FONT_STYLE_TAG");b||(b=document.createElement("style"),b.id="PDFJS_FONT_STYLE_TAG",document.documentElement.getElementsByTagName("head")[0].appendChild(b));var c=b.sheet;c.insertRule(a,c.cssRules.length)},clear:function(){var a=document.getElementById("PDFJS_FONT_STYLE_TAG");a&&a.parentNode.removeChild(a),this.nativeFontFaces.forEach(function(a){document.fonts["delete"](a)}),this.nativeFontFaces.length=0},get loadTestFont(){return i(this,"loadTestFont",atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA=="))},get isEvalSupported(){var a=!1;if(PDFJS.isEvalSupported)try{new Function(""),a=!0}catch(b){}return i(this,"isEvalSupported",a)},loadTestFontId:0,loadingContext:{requests:[],nextRequestId:0},isSyncFontLoadingSupported:function(){if(A)return!1;var a=window.navigator.userAgent,b=/Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(a);return b&&b[1]>=14?!0:"node"===a?!0:!1}(),nativeFontFaces:[],isFontLoadingAPISupported:!A&&"undefined"!=typeof document&&!!document.fonts,addNativeFontFace:function(a){this.nativeFontFaces.push(a),document.fonts.add(a)},bind:function(a,c){f(!A,"bind() shall be called from main thread");for(var d=[],e=[],g=[],h=function(a){return a.loaded["catch"](function(c){b('Failed to load font "'+a.family+'": '+c)})},i=0,j=a.length;j>i;i++){var k=a[i];if(!k.attached&&k.loading!==!1)if(k.attached=!0,this.isFontLoadingAPISupported){var l=k.createNativeFontFace();l&&g.push(h(l))}else{var m=k.bindDOM();m&&(d.push(m),e.push(k))}}var n=pa.queueLoadingCallback(c);this.isFontLoadingAPISupported?Promise.all(g).then(function(){n.complete()}):d.length>0&&!this.isSyncFontLoadingSupported?pa.prepareFontLoadEvent(d,e,n):n.complete()},queueLoadingCallback:function(a){function b(){for(f(!e.end,"completeRequest() cannot be called twice"),e.end=Date.now();c.requests.length>0&&c.requests[0].end;){var a=c.requests.shift();setTimeout(a.callback,0)}}var c=pa.loadingContext,d="pdfjs-font-loading-"+c.nextRequestId++,e={id:d,complete:b,callback:a,started:Date.now()};return c.requests.push(e),e},prepareFontLoadEvent:function(a,c,d){function e(a,b){return a.charCodeAt(b)<<24|a.charCodeAt(b+1)<<16|a.charCodeAt(b+2)<<8|255&a.charCodeAt(b+3)}function f(a,b,c,d){var e=a.substr(0,b),f=a.substr(b+c);return e+d+f}function g(a,c){if(l++,l>30)return b("Load test font never loaded."),void c();k.font="30px "+a,k.fillText(".",0,20);var d=k.getImageData(0,0,1,1);return d.data[3]>0?void c():void setTimeout(g.bind(null,a,c))}var h,i,j=document.createElement("canvas");j.width=1,j.height=1;var k=j.getContext("2d"),l=0,n="lt"+Date.now()+this.loadTestFontId++,o=this.loadTestFont,p=976;o=f(o,p,n.length,n);var q=16,r=1482184792,s=e(o,q);for(h=0,i=n.length-3;i>h;h+=4)s=s-r+e(n,h)|0;h<n.length&&(s=s-r+e(n+"XXX",h)|0),o=f(o,q,4,m(s));var t="url(data:font/opentype;base64,"+btoa(o)+");",u='@font-face { font-family:"'+n+'";src:'+t+"}";pa.insertRule(u);var v=[];for(h=0,i=c.length;i>h;h++)v.push(c[h].loadedName);v.push(n);var w=document.createElement("div");for(w.setAttribute("style","visibility: hidden;width: 10px; height: 10px;position: absolute; top: 0px; left: 0px;"),h=0,i=v.length;i>h;++h){var x=document.createElement("span");x.textContent="Hi",x.style.fontFamily=v[h],w.appendChild(x)}document.body.appendChild(w),g(n,function(){document.body.removeChild(w),d.complete()})}},qa=function(){function a(a,b,c){if(this.compiledGlyphs={},1!==arguments.length);else{var d=arguments[0];for(var e in d)this[e]=d[e]}}return a.prototype={createNativeFontFace:function(){if(!this.data)return null;if(PDFJS.disableFontFace)return this.disableFontFace=!0,null;var a=new FontFace(this.loadedName,this.data,{});return pa.addNativeFontFace(a),PDFJS.pdfBug&&"FontInspector"in z&&z.FontInspector.enabled&&z.FontInspector.fontAdded(this),a},bindDOM:function(){if(!this.data)return null;if(PDFJS.disableFontFace)return this.disableFontFace=!0,null;var a=k(new Uint8Array(this.data)),b=this.loadedName,c="url(data:"+this.mimetype+";base64,"+window.btoa(a)+");",d='@font-face { font-family:"'+b+'";src:'+c+"}";return pa.insertRule(d),PDFJS.pdfBug&&"FontInspector"in z&&z.FontInspector.enabled&&z.FontInspector.fontAdded(this,c),d},getPathGenerator:function(a,b){if(!(b in this.compiledGlyphs)){var c,d,e,f=a.get(this.loadedName+"_path_"+b);if(pa.isEvalSupported){var g,h="";for(d=0,e=f.length;e>d;d++)c=f[d],g=void 0!==c.args?c.args.join(","):"",h+="c."+c.cmd+"("+g+");\n";this.compiledGlyphs[b]=new Function("c","size",h)}else this.compiledGlyphs[b]=function(a,b){for(d=0,e=f.length;e>d;d++)c=f[d],"scale"===c.cmd&&(c.args=[b,-b]),a[c.cmd].apply(a,c.args)}}return this.compiledGlyphs[b]}},a}(),ra=10,sa=function(){function a(a,b,c){var d=a.style;if(d.fontSize=b.fontSize+"px",d.direction=b.fontDirection<0?"rtl":"ltr",c){d.fontWeight=c.black?c.bold?"bolder":"bold":c.bold?"bold":"normal",d.fontStyle=c.italic?"italic":"normal";var e=c.loadedName,f=e?'"'+e+'", ':"",g=c.fallbackName||"Helvetica, sans-serif";d.fontFamily=f+g}}function c(a){var c=document.createElement("section"),d=c.style,e=a.rect[2]-a.rect[0],f=a.rect[3]-a.rect[1];if(a.borderStyle.width>0){c.style.borderWidth=a.borderStyle.width+"px",a.borderStyle.style!==F.UNDERLINE&&(e-=2*a.borderStyle.width,f-=2*a.borderStyle.width);var g=a.borderStyle.horizontalCornerRadius,h=a.borderStyle.verticalCornerRadius;if(g>0||h>0){var i=g+"px / "+h+"px";CustomStyle.setProp("borderRadius",c,i)}switch(a.borderStyle.style){case F.SOLID:c.style.borderStyle="solid";break;case F.DASHED:c.style.borderStyle="dashed";break;case F.BEVELED:b("Unimplemented border style: beveled");break;case F.INSET:b("Unimplemented border style: inset");break;case F.UNDERLINE:c.style.borderBottomStyle="solid"}a.color?c.style.borderColor=T.makeCssRgb(0|a.color[0],0|a.color[1],0|a.color[2]):c.style.borderWidth=0}return d.width=e+"px",d.height=f+"px",c}function d(b,c){var d=document.createElement("div"),e=b.rect[2]-b.rect[0],f=b.rect[3]-b.rect[1];d.style.width=e+"px",d.style.height=f+"px",d.style.display="table";var g=document.createElement("div");g.textContent=b.fieldValue;var h=b.textAlignment;g.style.textAlign=["left","center","right"][h],g.style.verticalAlign="middle",g.style.display="table-cell";var i=b.fontRefName?c.getData(b.fontRefName):null;return a(g,b,i),d.appendChild(g),d}function e(a){var b=a.rect;b[3]-b[1]<ra&&(b[3]=b[1]+ra),b[2]-b[0]<ra&&(b[2]=b[0]+(b[3]-b[1]));var d=c(a);d.className="annotText";var e=document.createElement("img");e.style.height=d.style.height,e.style.width=d.style.width;var f=a.name;e.src=PDFJS.imageResourcesPath+"annotation-"+f.toLowerCase()+".svg",e.alt="[{{type}} Annotation]",e.dataset.l10nId="text_annotation_type",e.dataset.l10nArgs=JSON.stringify({type:f});var g=document.createElement("div");g.className="annotTextContentWrapper",g.style.left=Math.floor(b[2]-b[0]+5)+"px",g.style.top="-10px";var h=document.createElement("div");h.className="annotTextContent",h.setAttribute("hidden",!0);var i,j;if(a.hasBgColor&&a.color){var k=a.color,l=.7,m=l*(255-k[0])+k[0],n=l*(255-k[1])+k[1],o=l*(255-k[2])+k[2];h.style.backgroundColor=T.makeCssRgb(0|m,0|n,0|o)}var p=document.createElement("h1"),q=document.createElement("p");if(p.textContent=a.title,a.content||a.title){var r=document.createElement("span"),s=a.content.split(/(?:\r\n?|\n)/);for(i=0,j=s.length;j>i;++i){var t=s[i];r.appendChild(document.createTextNode(t)),j-1>i&&r.appendChild(document.createElement("br"))}q.appendChild(r);var u=!1,v=function(a){a&&(u=!0),h.hasAttribute("hidden")&&(d.style.zIndex+=1,h.removeAttribute("hidden"))},w=function(a){a&&(u=!1),h.hasAttribute("hidden")||u||(d.style.zIndex-=1,h.setAttribute("hidden",!0))},x=function(){u?w(!0):v(!0)};e.addEventListener("click",function(){x()},!1),e.addEventListener("mouseover",function(){v()},!1),e.addEventListener("mouseout",function(){w()},!1),h.addEventListener("click",function(){w(!0)},!1)}else h.setAttribute("hidden",!0);return h.appendChild(p),h.appendChild(q),g.appendChild(h),d.appendChild(e),d.appendChild(g),d}function f(a){var b=c(a);b.className="annotLink";var d=document.createElement("a");return d.href=d.title=a.url||"",a.url&&j()&&(d.target=K[PDFJS.externalLinkTarget]),b.appendChild(d),b}function g(a,b){switch(a.annotationType){case E.WIDGET:return d(a,b);case E.TEXT:return e(a);case E.LINK:return f(a);default:throw new Error("Unsupported annotationType: "+a.annotationType)}}return{getHtmlElement:g}}();PDFJS.AnnotationUtils=sa;var ta={fontStyle:"normal",fontWeight:"normal",fillColor:"#000000"},ua=function(){function a(a,b,c){for(var d=-1,e=b;c>e;e++){var f=255&(d^a[e]),h=g[f];d=d>>>8^h}return-1^d}function b(b,c,d,e){var f=e,g=c.length;d[f]=g>>24&255,d[f+1]=g>>16&255,d[f+2]=g>>8&255,d[f+3]=255&g,f+=4,d[f]=255&b.charCodeAt(0),d[f+1]=255&b.charCodeAt(1),d[f+2]=255&b.charCodeAt(2),d[f+3]=255&b.charCodeAt(3),f+=4,d.set(c,f),f+=c.length;var h=a(d,e+4,f);d[f]=h>>24&255,d[f+1]=h>>16&255,d[f+2]=h>>8&255,d[f+3]=255&h}function c(a,b,c){for(var d=1,e=0,f=b;c>f;++f)d=(d+(255&a[f]))%65521,e=(e+d)%65521;return e<<16|d}function d(a,d){var g,h,i,j=a.width,k=a.height,l=a.data;switch(d){case D.GRAYSCALE_1BPP:h=0,g=1,i=j+7>>3;break;case D.RGB_24BPP:h=2,g=8,i=3*j;break;case D.RGBA_32BPP:h=6,g=8,i=4*j;break;default:throw new Error("invalid format")}var m,n,o=new Uint8Array((1+i)*k),p=0,q=0;for(m=0;k>m;++m)o[p++]=0,o.set(l.subarray(q,q+i),p),q+=i,p+=i;if(d===D.GRAYSCALE_1BPP)for(p=0,m=0;k>m;m++)for(p++,n=0;i>n;n++)o[p++]^=255;var r=new Uint8Array([j>>24&255,j>>16&255,j>>8&255,255&j,k>>24&255,k>>16&255,k>>8&255,255&k,g,h,0,0,0]),s=o.length,t=65535,u=Math.ceil(s/t),v=new Uint8Array(2+s+5*u+4),w=0;v[w++]=120,v[w++]=156;for(var x=0;s>t;)v[w++]=0,v[w++]=255,v[w++]=255,v[w++]=0,v[w++]=0,v.set(o.subarray(x,x+t),w),w+=t,x+=t,s-=t;v[w++]=1,v[w++]=255&s,v[w++]=s>>8&255,v[w++]=65535&~s&255,v[w++]=(65535&~s)>>8&255,v.set(o.subarray(x),w),w+=o.length-x;var y=c(o,0,o.length);v[w++]=y>>24&255,v[w++]=y>>16&255,v[w++]=y>>8&255,v[w++]=255&y;var z=e.length+3*f+r.length+v.length,A=new Uint8Array(z),B=0;return A.set(e,B),B+=e.length,b("IHDR",r,A,B),B+=f+r.length,b("IDATA",v,A,B),B+=f+v.length,b("IEND",new Uint8Array(0),A,B),
+end:1791},{begin:1984,end:2047},{begin:2304,end:2431},{begin:2432,end:2559},{begin:2560,end:2687},{begin:2688,end:2815},{begin:2816,end:2943},{begin:2944,end:3071},{begin:3072,end:3199},{begin:3200,end:3327},{begin:3328,end:3455},{begin:3584,end:3711},{begin:3712,end:3839},{begin:4256,end:4351},{begin:6912,end:7039},{begin:4352,end:4607},{begin:7680,end:7935},{begin:7936,end:8191},{begin:8192,end:8303},{begin:8304,end:8351},{begin:8352,end:8399},{begin:8400,end:8447},{begin:8448,end:8527},{begin:8528,end:8591},{begin:8592,end:8703},{begin:8704,end:8959},{begin:8960,end:9215},{begin:9216,end:9279},{begin:9280,end:9311},{begin:9312,end:9471},{begin:9472,end:9599},{begin:9600,end:9631},{begin:9632,end:9727},{begin:9728,end:9983},{begin:9984,end:10175},{begin:12288,end:12351},{begin:12352,end:12447},{begin:12448,end:12543},{begin:12544,end:12591},{begin:12592,end:12687},{begin:43072,end:43135},{begin:12800,end:13055},{begin:13056,end:13311},{begin:44032,end:55215},{begin:55296,end:57343},{begin:67840,end:67871},{begin:19968,end:40959},{begin:57344,end:63743},{begin:12736,end:12783},{begin:64256,end:64335},{begin:64336,end:65023},{begin:65056,end:65071},{begin:65040,end:65055},{begin:65104,end:65135},{begin:65136,end:65279},{begin:65280,end:65519},{begin:65520,end:65535},{begin:3840,end:4095},{begin:1792,end:1871},{begin:1920,end:1983},{begin:3456,end:3583},{begin:4096,end:4255},{begin:4608,end:4991},{begin:5024,end:5119},{begin:5120,end:5759},{begin:5760,end:5791},{begin:5792,end:5887},{begin:6016,end:6143},{begin:6144,end:6319},{begin:10240,end:10495},{begin:40960,end:42127},{begin:5888,end:5919},{begin:66304,end:66351},{begin:66352,end:66383},{begin:66560,end:66639},{begin:118784,end:119039},{begin:119808,end:120831},{begin:1044480,end:1048573},{begin:65024,end:65039},{begin:917504,end:917631},{begin:6400,end:6479},{begin:6480,end:6527},{begin:6528,end:6623},{begin:6656,end:6687},{begin:11264,end:11359},{begin:11568,end:11647},{begin:19904,end:19967},{begin:43008,end:43055},{begin:65536,end:65663},{begin:65856,end:65935},{begin:66432,end:66463},{begin:66464,end:66527},{begin:66640,end:66687},{begin:66688,end:66735},{begin:67584,end:67647},{begin:68096,end:68191},{begin:119552,end:119647},{begin:73728,end:74751},{begin:119648,end:119679},{begin:7040,end:7103},{begin:7168,end:7247},{begin:7248,end:7295},{begin:43136,end:43231},{begin:43264,end:43311},{begin:43312,end:43359},{begin:43520,end:43615},{begin:65936,end:65999},{begin:66e3,end:66047},{begin:66208,end:66271},{begin:127024,end:127135}],Yb=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"],Zb={"¨":" ̈","¯":" ̄","´":" ́","µ":"μ","¸":" ̧","Ĳ":"IJ","ĳ":"ij","Ŀ":"L·","ŀ":"l·","ŉ":"ʼn","ſ":"s","Ǆ":"DŽ","ǅ":"Dž","ǆ":"dž","Ǉ":"LJ","ǈ":"Lj","ǉ":"lj","Ǌ":"NJ","ǋ":"Nj","ǌ":"nj","Ǳ":"DZ","ǲ":"Dz","ǳ":"dz","˘":" ̆","˙":" ̇","˚":" ̊","˛":" ̨","˜":" ̃","˝":" ̋","ͺ":" ͅ","΄":" ́","ϐ":"β","ϑ":"θ","ϒ":"Υ","ϕ":"φ","ϖ":"π","ϰ":"κ","ϱ":"ρ","ϲ":"ς","ϴ":"Θ","ϵ":"ε","Ϲ":"Σ","և":"եւ","ٵ":"اٴ","ٶ":"وٴ","ٷ":"ۇٴ","ٸ":"يٴ","ำ":"ํา","ຳ":"ໍາ","ໜ":"ຫນ","ໝ":"ຫມ","ཷ":"ྲཱྀ","ཹ":"ླཱྀ","ẚ":"aʾ","᾽":" ̓","᾿":" ̓","῀":" ͂","῾":" ̔"," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" ","‗":" ̳","․":".","‥":"..","…":"...","″":"′′","‴":"′′′","‶":"‵‵","‷":"‵‵‵","‼":"!!","‾":" ̅","⁇":"??","⁈":"?!","⁉":"!?","⁗":"′′′′"," ":" ","₨":"Rs","℀":"a/c","℁":"a/s","℃":"°C","℅":"c/o","℆":"c/u","ℇ":"Ɛ","℉":"°F","№":"No","℡":"TEL","ℵ":"א","ℶ":"ב","ℷ":"ג","ℸ":"ד","℻":"FAX","Ⅰ":"I","Ⅱ":"II","Ⅲ":"III","Ⅳ":"IV","Ⅴ":"V","Ⅵ":"VI","Ⅶ":"VII","Ⅷ":"VIII","Ⅸ":"IX","Ⅹ":"X","Ⅺ":"XI","Ⅻ":"XII","Ⅼ":"L","Ⅽ":"C","Ⅾ":"D","Ⅿ":"M","ⅰ":"i","ⅱ":"ii","ⅲ":"iii","ⅳ":"iv","ⅴ":"v","ⅵ":"vi","ⅶ":"vii","ⅷ":"viii","ⅸ":"ix","ⅹ":"x","ⅺ":"xi","ⅻ":"xii","ⅼ":"l","ⅽ":"c","ⅾ":"d","ⅿ":"m","∬":"∫∫","∭":"∫∫∫","∯":"∮∮","∰":"∮∮∮","⑴":"(1)","⑵":"(2)","⑶":"(3)","⑷":"(4)","⑸":"(5)","⑹":"(6)","⑺":"(7)","⑻":"(8)","⑼":"(9)","⑽":"(10)","⑾":"(11)","⑿":"(12)","⒀":"(13)","⒁":"(14)","⒂":"(15)","⒃":"(16)","⒄":"(17)","⒅":"(18)","⒆":"(19)","⒇":"(20)","⒈":"1.","⒉":"2.","⒊":"3.","⒋":"4.","⒌":"5.","⒍":"6.","⒎":"7.","⒏":"8.","⒐":"9.","⒑":"10.","⒒":"11.","⒓":"12.","⒔":"13.","⒕":"14.","⒖":"15.","⒗":"16.","⒘":"17.","⒙":"18.","⒚":"19.","⒛":"20.","⒜":"(a)","⒝":"(b)","⒞":"(c)","⒟":"(d)","⒠":"(e)","⒡":"(f)","⒢":"(g)","⒣":"(h)","⒤":"(i)","⒥":"(j)","⒦":"(k)","⒧":"(l)","⒨":"(m)","⒩":"(n)","⒪":"(o)","⒫":"(p)","⒬":"(q)","⒭":"(r)","⒮":"(s)","⒯":"(t)","⒰":"(u)","⒱":"(v)","⒲":"(w)","⒳":"(x)","⒴":"(y)","⒵":"(z)","⨌":"∫∫∫∫","⩴":"::=","⩵":"==","⩶":"===","⺟":"母","⻳":"龟","⼀":"一","⼁":"丨","⼂":"丶","⼃":"丿","⼄":"乙","⼅":"亅","⼆":"二","⼇":"亠","⼈":"人","⼉":"儿","⼊":"入","⼋":"八","⼌":"冂","⼍":"冖","⼎":"冫","⼏":"几","⼐":"凵","⼑":"刀","⼒":"力","⼓":"勹","⼔":"匕","⼕":"匚","⼖":"匸","⼗":"十","⼘":"卜","⼙":"卩","⼚":"厂","⼛":"厶","⼜":"又","⼝":"口","⼞":"囗","⼟":"土","⼠":"士","⼡":"夂","⼢":"夊","⼣":"夕","⼤":"大","⼥":"女","⼦":"子","⼧":"宀","⼨":"寸","⼩":"小","⼪":"尢","⼫":"尸","⼬":"屮","⼭":"山","⼮":"巛","⼯":"工","⼰":"己","⼱":"巾","⼲":"干","⼳":"幺","⼴":"广","⼵":"廴","⼶":"廾","⼷":"弋","⼸":"弓","⼹":"彐","⼺":"彡","⼻":"彳","⼼":"心","⼽":"戈","⼾":"戶","⼿":"手","⽀":"支","⽁":"攴","⽂":"文","⽃":"斗","⽄":"斤","⽅":"方","⽆":"无","⽇":"日","⽈":"曰","⽉":"月","⽊":"木","⽋":"欠","⽌":"止","⽍":"歹","⽎":"殳","⽏":"毋","⽐":"比","⽑":"毛","⽒":"氏","⽓":"气","⽔":"水","⽕":"火","⽖":"爪","⽗":"父","⽘":"爻","⽙":"爿","⽚":"片","⽛":"牙","⽜":"牛","⽝":"犬","⽞":"玄","⽟":"玉","⽠":"瓜","⽡":"瓦","⽢":"甘","⽣":"生","⽤":"用","⽥":"田","⽦":"疋","⽧":"疒","⽨":"癶","⽩":"白","⽪":"皮","⽫":"皿","⽬":"目","⽭":"矛","⽮":"矢","⽯":"石","⽰":"示","⽱":"禸","⽲":"禾","⽳":"穴","⽴":"立","⽵":"竹","⽶":"米","⽷":"糸","⽸":"缶","⽹":"网","⽺":"羊","⽻":"羽","⽼":"老","⽽":"而","⽾":"耒","⽿":"耳","⾀":"聿","⾁":"肉","⾂":"臣","⾃":"自","⾄":"至","⾅":"臼","⾆":"舌","⾇":"舛","⾈":"舟","⾉":"艮","⾊":"色","⾋":"艸","⾌":"虍","⾍":"虫","⾎":"血","⾏":"行","⾐":"衣","⾑":"襾","⾒":"見","⾓":"角","⾔":"言","⾕":"谷","⾖":"豆","⾗":"豕","⾘":"豸","⾙":"貝","⾚":"赤","⾛":"走","⾜":"足","⾝":"身","⾞":"車","⾟":"辛","⾠":"辰","⾡":"辵","⾢":"邑","⾣":"酉","⾤":"釆","⾥":"里","⾦":"金","⾧":"長","⾨":"門","⾩":"阜","⾪":"隶","⾫":"隹","⾬":"雨","⾭":"靑","⾮":"非","⾯":"面","⾰":"革","⾱":"韋","⾲":"韭","⾳":"音","⾴":"頁","⾵":"風","⾶":"飛","⾷":"食","⾸":"首","⾹":"香","⾺":"馬","⾻":"骨","⾼":"高","⾽":"髟","⾾":"鬥","⾿":"鬯","⿀":"鬲","⿁":"鬼","⿂":"魚","⿃":"鳥","⿄":"鹵","⿅":"鹿","⿆":"麥","⿇":"麻","⿈":"黃","⿉":"黍","⿊":"黑","⿋":"黹","⿌":"黽","⿍":"鼎","⿎":"鼓","⿏":"鼠","⿐":"鼻","⿑":"齊","⿒":"齒","⿓":"龍","⿔":"龜","⿕":"龠","〶":"〒","〸":"十","〹":"卄","〺":"卅","゛":" ゙","゜":" ゚","ㄱ":"ᄀ","ㄲ":"ᄁ","ㄳ":"ᆪ","ㄴ":"ᄂ","ㄵ":"ᆬ","ㄶ":"ᆭ","ㄷ":"ᄃ","ㄸ":"ᄄ","ㄹ":"ᄅ","ㄺ":"ᆰ","ㄻ":"ᆱ","ㄼ":"ᆲ","ㄽ":"ᆳ","ㄾ":"ᆴ","ㄿ":"ᆵ","ㅀ":"ᄚ","ㅁ":"ᄆ","ㅂ":"ᄇ","ㅃ":"ᄈ","ㅄ":"ᄡ","ㅅ":"ᄉ","ㅆ":"ᄊ","ㅇ":"ᄋ","ㅈ":"ᄌ","ㅉ":"ᄍ","ㅊ":"ᄎ","ㅋ":"ᄏ","ㅌ":"ᄐ","ㅍ":"ᄑ","ㅎ":"ᄒ","ㅏ":"ᅡ","ㅐ":"ᅢ","ㅑ":"ᅣ","ㅒ":"ᅤ","ㅓ":"ᅥ","ㅔ":"ᅦ","ㅕ":"ᅧ","ㅖ":"ᅨ","ㅗ":"ᅩ","ㅘ":"ᅪ","ㅙ":"ᅫ","ㅚ":"ᅬ","ㅛ":"ᅭ","ㅜ":"ᅮ","ㅝ":"ᅯ","ㅞ":"ᅰ","ㅟ":"ᅱ","ㅠ":"ᅲ","ㅡ":"ᅳ","ㅢ":"ᅴ","ㅣ":"ᅵ","ㅤ":"ᅠ","ㅥ":"ᄔ","ㅦ":"ᄕ","ㅧ":"ᇇ","ㅨ":"ᇈ","ㅩ":"ᇌ","ㅪ":"ᇎ","ㅫ":"ᇓ","ㅬ":"ᇗ","ㅭ":"ᇙ","ㅮ":"ᄜ","ㅯ":"ᇝ","ㅰ":"ᇟ","ㅱ":"ᄝ","ㅲ":"ᄞ","ㅳ":"ᄠ","ㅴ":"ᄢ","ㅵ":"ᄣ","ㅶ":"ᄧ","ㅷ":"ᄩ","ㅸ":"ᄫ","ㅹ":"ᄬ","ㅺ":"ᄭ","ㅻ":"ᄮ","ㅼ":"ᄯ","ㅽ":"ᄲ","ㅾ":"ᄶ","ㅿ":"ᅀ","ㆀ":"ᅇ","ㆁ":"ᅌ","ㆂ":"ᇱ","ㆃ":"ᇲ","ㆄ":"ᅗ","ㆅ":"ᅘ","ㆆ":"ᅙ","ㆇ":"ᆄ","ㆈ":"ᆅ","ㆉ":"ᆈ","ㆊ":"ᆑ","ㆋ":"ᆒ","ㆌ":"ᆔ","ㆍ":"ᆞ","ㆎ":"ᆡ","㈀":"(ᄀ)","㈁":"(ᄂ)","㈂":"(ᄃ)","㈃":"(ᄅ)","㈄":"(ᄆ)","㈅":"(ᄇ)","㈆":"(ᄉ)","㈇":"(ᄋ)","㈈":"(ᄌ)","㈉":"(ᄎ)","㈊":"(ᄏ)","㈋":"(ᄐ)","㈌":"(ᄑ)","㈍":"(ᄒ)","㈎":"(가)","㈏":"(나)","㈐":"(다)","㈑":"(라)","㈒":"(마)","㈓":"(바)","㈔":"(사)","㈕":"(아)","㈖":"(자)","㈗":"(차)","㈘":"(카)","㈙":"(타)","㈚":"(파)","㈛":"(하)","㈜":"(주)","㈝":"(오전)","㈞":"(오후)","㈠":"(一)","㈡":"(二)","㈢":"(三)","㈣":"(四)","㈤":"(五)","㈥":"(六)","㈦":"(七)","㈧":"(八)","㈨":"(九)","㈩":"(十)","㈪":"(月)","㈫":"(火)","㈬":"(水)","㈭":"(木)","㈮":"(金)","㈯":"(土)","㈰":"(日)","㈱":"(株)","㈲":"(有)","㈳":"(社)","㈴":"(名)","㈵":"(特)","㈶":"(財)","㈷":"(祝)","㈸":"(労)","㈹":"(代)","㈺":"(呼)","㈻":"(学)","㈼":"(監)","㈽":"(企)","㈾":"(資)","㈿":"(協)","㉀":"(祭)","㉁":"(休)","㉂":"(自)","㉃":"(至)","㋀":"1月","㋁":"2月","㋂":"3月","㋃":"4月","㋄":"5月","㋅":"6月","㋆":"7月","㋇":"8月","㋈":"9月","㋉":"10月","㋊":"11月","㋋":"12月","㍘":"0点","㍙":"1点","㍚":"2点","㍛":"3点","㍜":"4点","㍝":"5点","㍞":"6点","㍟":"7点","㍠":"8点","㍡":"9点","㍢":"10点","㍣":"11点","㍤":"12点","㍥":"13点","㍦":"14点","㍧":"15点","㍨":"16点","㍩":"17点","㍪":"18点","㍫":"19点","㍬":"20点","㍭":"21点","㍮":"22点","㍯":"23点","㍰":"24点","㏠":"1日","㏡":"2日","㏢":"3日","㏣":"4日","㏤":"5日","㏥":"6日","㏦":"7日","㏧":"8日","㏨":"9日","㏩":"10日","㏪":"11日","㏫":"12日","㏬":"13日","㏭":"14日","㏮":"15日","㏯":"16日","㏰":"17日","㏱":"18日","㏲":"19日","㏳":"20日","㏴":"21日","㏵":"22日","㏶":"23日","㏷":"24日","㏸":"25日","㏹":"26日","㏺":"27日","㏻":"28日","㏼":"29日","㏽":"30日","㏾":"31日","ﬀ":"ff","ﬁ":"fi","ﬂ":"fl","ﬃ":"ffi","ﬄ":"ffl","ﬅ":"ſt","ﬆ":"st","ﬓ":"մն","ﬔ":"մե","ﬕ":"մի","ﬖ":"վն","ﬗ":"մխ","ﭏ":"אל","ﭐ":"ٱ","ﭑ":"ٱ","ﭒ":"ٻ","ﭓ":"ٻ","ﭔ":"ٻ","ﭕ":"ٻ","ﭖ":"پ","ﭗ":"پ","ﭘ":"پ","ﭙ":"پ","ﭚ":"ڀ","ﭛ":"ڀ","ﭜ":"ڀ","ﭝ":"ڀ","ﭞ":"ٺ","ﭟ":"ٺ","ﭠ":"ٺ","ﭡ":"ٺ","ﭢ":"ٿ","ﭣ":"ٿ","ﭤ":"ٿ","ﭥ":"ٿ","ﭦ":"ٹ","ﭧ":"ٹ","ﭨ":"ٹ","ﭩ":"ٹ","ﭪ":"ڤ","ﭫ":"ڤ","ﭬ":"ڤ","ﭭ":"ڤ","ﭮ":"ڦ","ﭯ":"ڦ","ﭰ":"ڦ","ﭱ":"ڦ","ﭲ":"ڄ","ﭳ":"ڄ","ﭴ":"ڄ","ﭵ":"ڄ","ﭶ":"ڃ","ﭷ":"ڃ","ﭸ":"ڃ","ﭹ":"ڃ","ﭺ":"چ","ﭻ":"چ","ﭼ":"چ","ﭽ":"چ","ﭾ":"ڇ","ﭿ":"ڇ","ﮀ":"ڇ","ﮁ":"ڇ","ﮂ":"ڍ","ﮃ":"ڍ","ﮄ":"ڌ","ﮅ":"ڌ","ﮆ":"ڎ","ﮇ":"ڎ","ﮈ":"ڈ","ﮉ":"ڈ","ﮊ":"ژ","ﮋ":"ژ","ﮌ":"ڑ","ﮍ":"ڑ","ﮎ":"ک","ﮏ":"ک","ﮐ":"ک","ﮑ":"ک","ﮒ":"گ","ﮓ":"گ","ﮔ":"گ","ﮕ":"گ","ﮖ":"ڳ","ﮗ":"ڳ","ﮘ":"ڳ","ﮙ":"ڳ","ﮚ":"ڱ","ﮛ":"ڱ","ﮜ":"ڱ","ﮝ":"ڱ","ﮞ":"ں","ﮟ":"ں","ﮠ":"ڻ","ﮡ":"ڻ","ﮢ":"ڻ","ﮣ":"ڻ","ﮤ":"ۀ","ﮥ":"ۀ","ﮦ":"ہ","ﮧ":"ہ","ﮨ":"ہ","ﮩ":"ہ","ﮪ":"ھ","ﮫ":"ھ","ﮬ":"ھ","ﮭ":"ھ","ﮮ":"ے","ﮯ":"ے","ﮰ":"ۓ","ﮱ":"ۓ","ﯓ":"ڭ","ﯔ":"ڭ","ﯕ":"ڭ","ﯖ":"ڭ","ﯗ":"ۇ","ﯘ":"ۇ","ﯙ":"ۆ","ﯚ":"ۆ","ﯛ":"ۈ","ﯜ":"ۈ","ﯝ":"ٷ","ﯞ":"ۋ","ﯟ":"ۋ","ﯠ":"ۅ","ﯡ":"ۅ","ﯢ":"ۉ","ﯣ":"ۉ","ﯤ":"ې","ﯥ":"ې","ﯦ":"ې","ﯧ":"ې","ﯨ":"ى","ﯩ":"ى","ﯪ":"ئا","ﯫ":"ئا","ﯬ":"ئە","ﯭ":"ئە","ﯮ":"ئو","ﯯ":"ئو","ﯰ":"ئۇ","ﯱ":"ئۇ","ﯲ":"ئۆ","ﯳ":"ئۆ","ﯴ":"ئۈ","ﯵ":"ئۈ","ﯶ":"ئې","ﯷ":"ئې","ﯸ":"ئې","ﯹ":"ئى","ﯺ":"ئى","ﯻ":"ئى","ﯼ":"ی","ﯽ":"ی","ﯾ":"ی","ﯿ":"ی","ﰀ":"ئج","ﰁ":"ئح","ﰂ":"ئم","ﰃ":"ئى","ﰄ":"ئي","ﰅ":"بج","ﰆ":"بح","ﰇ":"بخ","ﰈ":"بم","ﰉ":"بى","ﰊ":"بي","ﰋ":"تج","ﰌ":"تح","ﰍ":"تخ","ﰎ":"تم","ﰏ":"تى","ﰐ":"تي","ﰑ":"ثج","ﰒ":"ثم","ﰓ":"ثى","ﰔ":"ثي","ﰕ":"جح","ﰖ":"جم","ﰗ":"حج","ﰘ":"حم","ﰙ":"خج","ﰚ":"خح","ﰛ":"خم","ﰜ":"سج","ﰝ":"سح","ﰞ":"سخ","ﰟ":"سم","ﰠ":"صح","ﰡ":"صم","ﰢ":"ضج","ﰣ":"ضح","ﰤ":"ضخ","ﰥ":"ضم","ﰦ":"طح","ﰧ":"طم","ﰨ":"ظم","ﰩ":"عج","ﰪ":"عم","ﰫ":"غج","ﰬ":"غم","ﰭ":"فج","ﰮ":"فح","ﰯ":"فخ","ﰰ":"فم","ﰱ":"فى","ﰲ":"في","ﰳ":"قح","ﰴ":"قم","ﰵ":"قى","ﰶ":"قي","ﰷ":"كا","ﰸ":"كج","ﰹ":"كح","ﰺ":"كخ","ﰻ":"كل","ﰼ":"كم","ﰽ":"كى","ﰾ":"كي","ﰿ":"لج","ﱀ":"لح","ﱁ":"لخ","ﱂ":"لم","ﱃ":"لى","ﱄ":"لي","ﱅ":"مج","ﱆ":"مح","ﱇ":"مخ","ﱈ":"مم","ﱉ":"مى","ﱊ":"مي","ﱋ":"نج","ﱌ":"نح","ﱍ":"نخ","ﱎ":"نم","ﱏ":"نى","ﱐ":"ني","ﱑ":"هج","ﱒ":"هم","ﱓ":"هى","ﱔ":"هي","ﱕ":"يج","ﱖ":"يح","ﱗ":"يخ","ﱘ":"يم","ﱙ":"يى","ﱚ":"يي","ﱛ":"ذٰ","ﱜ":"رٰ","ﱝ":"ىٰ","ﱞ":" ٌّ","ﱟ":" ٍّ","ﱠ":" َّ","ﱡ":" ُّ","ﱢ":" ِّ","ﱣ":" ّٰ","ﱤ":"ئر","ﱥ":"ئز","ﱦ":"ئم","ﱧ":"ئن","ﱨ":"ئى","ﱩ":"ئي","ﱪ":"بر","ﱫ":"بز","ﱬ":"بم","ﱭ":"بن","ﱮ":"بى","ﱯ":"بي","ﱰ":"تر","ﱱ":"تز","ﱲ":"تم","ﱳ":"تن","ﱴ":"تى","ﱵ":"تي","ﱶ":"ثر","ﱷ":"ثز","ﱸ":"ثم","ﱹ":"ثن","ﱺ":"ثى","ﱻ":"ثي","ﱼ":"فى","ﱽ":"في","ﱾ":"قى","ﱿ":"قي","ﲀ":"كا","ﲁ":"كل","ﲂ":"كم","ﲃ":"كى","ﲄ":"كي","ﲅ":"لم","ﲆ":"لى","ﲇ":"لي","ﲈ":"ما","ﲉ":"مم","ﲊ":"نر","ﲋ":"نز","ﲌ":"نم","ﲍ":"نن","ﲎ":"نى","ﲏ":"ني","ﲐ":"ىٰ","ﲑ":"ير","ﲒ":"يز","ﲓ":"يم","ﲔ":"ين","ﲕ":"يى","ﲖ":"يي","ﲗ":"ئج","ﲘ":"ئح","ﲙ":"ئخ","ﲚ":"ئم","ﲛ":"ئه","ﲜ":"بج","ﲝ":"بح","ﲞ":"بخ","ﲟ":"بم","ﲠ":"به","ﲡ":"تج","ﲢ":"تح","ﲣ":"تخ","ﲤ":"تم","ﲥ":"ته","ﲦ":"ثم","ﲧ":"جح","ﲨ":"جم","ﲩ":"حج","ﲪ":"حم","ﲫ":"خج","ﲬ":"خم","ﲭ":"سج","ﲮ":"سح","ﲯ":"سخ","ﲰ":"سم","ﲱ":"صح","ﲲ":"صخ","ﲳ":"صم","ﲴ":"ضج","ﲵ":"ضح","ﲶ":"ضخ","ﲷ":"ضم","ﲸ":"طح","ﲹ":"ظم","ﲺ":"عج","ﲻ":"عم","ﲼ":"غج","ﲽ":"غم","ﲾ":"فج","ﲿ":"فح","ﳀ":"فخ","ﳁ":"فم","ﳂ":"قح","ﳃ":"قم","ﳄ":"كج","ﳅ":"كح","ﳆ":"كخ","ﳇ":"كل","ﳈ":"كم","ﳉ":"لج","ﳊ":"لح","ﳋ":"لخ","ﳌ":"لم","ﳍ":"له","ﳎ":"مج","ﳏ":"مح","ﳐ":"مخ","ﳑ":"مم","ﳒ":"نج","ﳓ":"نح","ﳔ":"نخ","ﳕ":"نم","ﳖ":"نه","ﳗ":"هج","ﳘ":"هم","ﳙ":"هٰ","ﳚ":"يج","ﳛ":"يح","ﳜ":"يخ","ﳝ":"يم","ﳞ":"يه","ﳟ":"ئم","ﳠ":"ئه","ﳡ":"بم","ﳢ":"به","ﳣ":"تم","ﳤ":"ته","ﳥ":"ثم","ﳦ":"ثه","ﳧ":"سم","ﳨ":"سه","ﳩ":"شم","ﳪ":"شه","ﳫ":"كل","ﳬ":"كم","ﳭ":"لم","ﳮ":"نم","ﳯ":"نه","ﳰ":"يم","ﳱ":"يه","ﳲ":"ـَّ","ﳳ":"ـُّ","ﳴ":"ـِّ","ﳵ":"طى","ﳶ":"طي","ﳷ":"عى","ﳸ":"عي","ﳹ":"غى","ﳺ":"غي","ﳻ":"سى","ﳼ":"سي","ﳽ":"شى","ﳾ":"شي","ﳿ":"حى","ﴀ":"حي","ﴁ":"جى","ﴂ":"جي","ﴃ":"خى","ﴄ":"خي","ﴅ":"صى","ﴆ":"صي","ﴇ":"ضى","ﴈ":"ضي","ﴉ":"شج","ﴊ":"شح","ﴋ":"شخ","ﴌ":"شم","ﴍ":"شر","ﴎ":"سر","ﴏ":"صر","ﴐ":"ضر","ﴑ":"طى","ﴒ":"طي","ﴓ":"عى","ﴔ":"عي","ﴕ":"غى","ﴖ":"غي","ﴗ":"سى","ﴘ":"سي","ﴙ":"شى","ﴚ":"شي","ﴛ":"حى","ﴜ":"حي","ﴝ":"جى","ﴞ":"جي","ﴟ":"خى","ﴠ":"خي","ﴡ":"صى","ﴢ":"صي","ﴣ":"ضى","ﴤ":"ضي","ﴥ":"شج","ﴦ":"شح","ﴧ":"شخ","ﴨ":"شم","ﴩ":"شر","ﴪ":"سر","ﴫ":"صر","ﴬ":"ضر","ﴭ":"شج","ﴮ":"شح","ﴯ":"شخ","ﴰ":"شم","ﴱ":"سه","ﴲ":"شه","ﴳ":"طم","ﴴ":"سج","ﴵ":"سح","ﴶ":"سخ","ﴷ":"شج","ﴸ":"شح","ﴹ":"شخ","ﴺ":"طم","ﴻ":"ظم","ﴼ":"اً","ﴽ":"اً","ﵐ":"تجم","ﵑ":"تحج","ﵒ":"تحج","ﵓ":"تحم","ﵔ":"تخم","ﵕ":"تمج","ﵖ":"تمح","ﵗ":"تمخ","ﵘ":"جمح","ﵙ":"جمح","ﵚ":"حمي","ﵛ":"حمى","ﵜ":"سحج","ﵝ":"سجح","ﵞ":"سجى","ﵟ":"سمح","ﵠ":"سمح","ﵡ":"سمج","ﵢ":"سمم","ﵣ":"سمم","ﵤ":"صحح","ﵥ":"صحح","ﵦ":"صمم","ﵧ":"شحم","ﵨ":"شحم","ﵩ":"شجي","ﵪ":"شمخ","ﵫ":"شمخ","ﵬ":"شمم","ﵭ":"شمم","ﵮ":"ضحى","ﵯ":"ضخم","ﵰ":"ضخم","ﵱ":"طمح","ﵲ":"طمح","ﵳ":"طمم","ﵴ":"طمي","ﵵ":"عجم","ﵶ":"عمم","ﵷ":"عمم","ﵸ":"عمى","ﵹ":"غمم","ﵺ":"غمي","ﵻ":"غمى","ﵼ":"فخم","ﵽ":"فخم","ﵾ":"قمح","ﵿ":"قمم","ﶀ":"لحم","ﶁ":"لحي","ﶂ":"لحى","ﶃ":"لجج","ﶄ":"لجج","ﶅ":"لخم","ﶆ":"لخم","ﶇ":"لمح","ﶈ":"لمح","ﶉ":"محج","ﶊ":"محم","ﶋ":"محي","ﶌ":"مجح","ﶍ":"مجم","ﶎ":"مخج","ﶏ":"مخم","ﶒ":"مجخ","ﶓ":"همج","ﶔ":"همم","ﶕ":"نحم","ﶖ":"نحى","ﶗ":"نجم","ﶘ":"نجم","ﶙ":"نجى","ﶚ":"نمي","ﶛ":"نمى","ﶜ":"يمم","ﶝ":"يمم","ﶞ":"بخي","ﶟ":"تجي","ﶠ":"تجى","ﶡ":"تخي","ﶢ":"تخى","ﶣ":"تمي","ﶤ":"تمى","ﶥ":"جمي","ﶦ":"جحى","ﶧ":"جمى","ﶨ":"سخى","ﶩ":"صحي","ﶪ":"شحي","ﶫ":"ضحي","ﶬ":"لجي","ﶭ":"لمي","ﶮ":"يحي","ﶯ":"يجي","ﶰ":"يمي","ﶱ":"ممي","ﶲ":"قمي","ﶳ":"نحي","ﶴ":"قمح","ﶵ":"لحم","ﶶ":"عمي","ﶷ":"كمي","ﶸ":"نجح","ﶹ":"مخي","ﶺ":"لجم","ﶻ":"كمم","ﶼ":"لجم","ﶽ":"نجح","ﶾ":"جحي","ﶿ":"حجي","ﷀ":"مجي","ﷁ":"فمي","ﷂ":"بحي","ﷃ":"كمم","ﷄ":"عجم","ﷅ":"صمم","ﷆ":"سخي","ﷇ":"نجي","﹉":"‾","﹊":"‾","﹋":"‾","﹌":"‾","﹍":"_","﹎":"_","﹏":"_","ﺀ":"ء","ﺁ":"آ","ﺂ":"آ","ﺃ":"أ","ﺄ":"أ","ﺅ":"ؤ","ﺆ":"ؤ","ﺇ":"إ","ﺈ":"إ","ﺉ":"ئ","ﺊ":"ئ","ﺋ":"ئ","ﺌ":"ئ","ﺍ":"ا","ﺎ":"ا","ﺏ":"ب","ﺐ":"ب","ﺑ":"ب","ﺒ":"ب","ﺓ":"ة","ﺔ":"ة","ﺕ":"ت","ﺖ":"ت","ﺗ":"ت","ﺘ":"ت","ﺙ":"ث","ﺚ":"ث","ﺛ":"ث","ﺜ":"ث","ﺝ":"ج","ﺞ":"ج","ﺟ":"ج","ﺠ":"ج","ﺡ":"ح","ﺢ":"ح","ﺣ":"ح","ﺤ":"ح","ﺥ":"خ","ﺦ":"خ","ﺧ":"خ","ﺨ":"خ","ﺩ":"د","ﺪ":"د","ﺫ":"ذ","ﺬ":"ذ","ﺭ":"ر","ﺮ":"ر","ﺯ":"ز","ﺰ":"ز","ﺱ":"س","ﺲ":"س","ﺳ":"س","ﺴ":"س","ﺵ":"ش","ﺶ":"ش","ﺷ":"ش","ﺸ":"ش","ﺹ":"ص","ﺺ":"ص","ﺻ":"ص","ﺼ":"ص","ﺽ":"ض","ﺾ":"ض","ﺿ":"ض","ﻀ":"ض","ﻁ":"ط","ﻂ":"ط","ﻃ":"ط","ﻄ":"ط","ﻅ":"ظ","ﻆ":"ظ","ﻇ":"ظ","ﻈ":"ظ","ﻉ":"ع","ﻊ":"ع","ﻋ":"ع","ﻌ":"ع","ﻍ":"غ","ﻎ":"غ","ﻏ":"غ","ﻐ":"غ","ﻑ":"ف","ﻒ":"ف","ﻓ":"ف","ﻔ":"ف","ﻕ":"ق","ﻖ":"ق","ﻗ":"ق","ﻘ":"ق","ﻙ":"ك","ﻚ":"ك","ﻛ":"ك","ﻜ":"ك","ﻝ":"ل","ﻞ":"ل","ﻟ":"ل","ﻠ":"ل","ﻡ":"م","ﻢ":"م","ﻣ":"م","ﻤ":"م","ﻥ":"ن","ﻦ":"ن","ﻧ":"ن","ﻨ":"ن","ﻩ":"ه","ﻪ":"ه","ﻫ":"ه","ﻬ":"ه","ﻭ":"و","ﻮ":"و","ﻯ":"ى","ﻰ":"ى","ﻱ":"ي","ﻲ":"ي","ﻳ":"ي","ﻴ":"ي","ﻵ":"لآ","ﻶ":"لآ","ﻷ":"لأ","ﻸ":"لأ","ﻹ":"لإ","ﻺ":"لإ","ﻻ":"لا","ﻼ":"لا"},$b=function(){function a(a,b,c,d,e,f){this.fontChar=a,this.unicode=b,this.accent=c,this.width=d,this.vmetric=e,this.operatorListId=f}return a.prototype.matchesForCache=function(a,b,c,d,e,f){return this.fontChar===a&&this.unicode===b&&this.accent===c&&this.width===d&&this.vmetric===e&&this.operatorListId===f},a}(),_b=function(){function a(a){this._map=a}return a.prototype={get length(){return this._map.length},forEach:function(a){for(var b in this._map)a(b,this._map[b].charCodeAt(0))},has:function(a){return void 0!==this._map[a]},get:function(a){return this._map[a]},charCodeOf:function(a){return this._map.indexOf(a)}},a}(),ac=function(){function a(a,b){this.firstChar=a,this.lastChar=b}return a.prototype={get length(){return this.lastChar+1-this.firstChar},forEach:function(a){for(var b=this.firstChar,c=this.lastChar;c>=b;b++)a(b,b)},has:function(a){return this.firstChar<=a&&a<=this.lastChar},get:function(a){return this.firstChar<=a&&a<=this.lastChar?String.fromCharCode(a):void 0},charCodeOf:function(a){c("should not call .charCodeOf")}},a}(),bc=function(){function a(a,b,c){a[b]=c>>8&255,a[b+1]=255&c}function b(a,b,c){a[b]=c>>24&255,a[b+1]=c>>16&255,a[b+2]=c>>8&255,a[b+3]=255&c}function c(a,b,c){var d,e;if(c instanceof Uint8Array)a.set(c,b);else if("string"==typeof c)for(d=0,e=c.length;e>d;d++)a[b++]=255&c.charCodeAt(d);else for(d=0,e=c.length;e>d;d++)a[b++]=255&c[d]}function d(a){this.sfnt=a,this.tables=Object.create(null)}d.getSearchParams=function(a,b){for(var c=1,d=0;(c^a)>c;)c<<=1,d++;var e=c*b;return{range:e,entry:d,rangeShift:b*a-e}};var e=12,f=16;return d.prototype={toArray:function(){var g=this.sfnt,h=this.tables,i=Object.keys(h);i.sort();var j,l,m,n,o,p=i.length,q=e+p*f,r=[q];for(j=0;p>j;j++){n=h[i[j]];var s=(n.length+3&-4)>>>0;q+=s,r.push(q)}var t=new Uint8Array(q);for(j=0;p>j;j++)n=h[i[j]],c(t,r[j],n);"true"===g&&(g=k(65536)),t[0]=255&g.charCodeAt(0),t[1]=255&g.charCodeAt(1),t[2]=255&g.charCodeAt(2),t[3]=255&g.charCodeAt(3),a(t,4,p);var u=d.getSearchParams(p,16);for(a(t,6,u.range),a(t,8,u.entry),a(t,10,u.rangeShift),q=e,j=0;p>j;j++){o=i[j],t[q]=255&o.charCodeAt(0),t[q+1]=255&o.charCodeAt(1),t[q+2]=255&o.charCodeAt(2),t[q+3]=255&o.charCodeAt(3);var v=0;for(l=r[j],m=r[j+1];m>l;l+=4){var w=(t[l]<<24)+(t[l+1]<<16)+(t[l+2]<<8)+t[l+3];v=v+w|0}b(t,q+4,v),b(t,q+8,r[j]),b(t,q+12,h[o].length),q+=f}return t},addTable:function(a,b){if(a in this.tables)throw new Error("Table "+a+" already exists");this.tables[a]=b}},d}(),cc=new Int32Array([0,32,127,161,173,174,1536,1920,2208,4256,6016,6144,8192,8208,8209,8210,8232,8240,8287,8304,9676,9677,43616,43648,65520,65536]),dc=function(){function d(d,e,f){var g,h,i;this.name=d,this.loadedName=f.loadedName,this.isType3Font=f.isType3Font,this.sizes=[],this.glyphCache={};var j=d.split("+");j=j.length>1?j[1]:j[0],j=j.split(/[-,_]/g)[0],this.isSerifFont=!!(f.flags&Ob.Serif),this.isSymbolicFont=!!(f.flags&Ob.Symbolic),this.isMonospace=!!(f.flags&Ob.FixedPitch);var k=f.type,l=f.subtype;if(this.type=k,this.fallbackName=this.isMonospace?"monospace":this.isSerifFont?"serif":"sans-serif",this.differences=f.differences,this.widths=f.widths,this.defaultWidth=f.defaultWidth,this.composite=f.composite,this.wideChars=f.wideChars,this.cMap=f.cMap,this.ascent=f.ascent/Lb,this.descent=f.descent/Lb,this.fontMatrix=f.fontMatrix,this.bbox=f.bbox,this.toUnicode=f.toUnicode=this.buildToUnicode(f),this.toFontChar=[],"Type3"===f.type){for(g=0;256>g;g++)this.toFontChar[g]=this.differences[g]||f.defaultEncoding[g];return void(this.fontType=Z.TYPE3)}if(this.cidEncoding=f.cidEncoding,this.vertical=f.vertical,this.vertical&&(this.vmetrics=f.vmetrics,this.defaultVMetrics=f.defaultVMetrics),!e||e.isEmpty){e&&b('Font file is empty in "'+d+'" ('+this.loadedName+")"),this.missingFile=!0;var o=d.replace(/[,_]/g,"-"),p=!!Qb[o]||!(!Rb[o]||!Qb[Rb[o]]);if(o=Qb[o]||Rb[o]||o,this.bold=-1!==o.search(/bold/gi),this.italic=-1!==o.search(/oblique/gi)||-1!==o.search(/italic/gi),this.black=-1!==d.search(/Black/g),this.remeasure=Object.keys(this.widths).length>0,p&&"CIDFontType2"===k&&0===f.cidEncoding.indexOf("Identity-")){var q=[];for(g in Ub)q[+g]=Ub[g];if(/ArialBlack/i.test(d))for(g in Vb)q[+g]=Vb[g];var r=this.toUnicode instanceof ac;r||this.toUnicode.forEach(function(a,b){q[+a]=b}),this.toFontChar=q,this.toUnicode=new _b(q)}else if(/Symbol/i.test(o)){var s=Pb.SymbolSetEncoding;for(g in s)i=zc[s[g]],i&&(this.toFontChar[g]=i);for(g in f.differences)i=zc[f.differences[g]],i&&(this.toFontChar[g]=i)}else if(/Dingbats/i.test(o)){/Wingdings/i.test(d)&&b("Wingdings font without embedded font file, falling back to the ZapfDingbats encoding.");var t=Pb.ZapfDingbatsEncoding;for(g in t)i=Ac[t[g]],i&&(this.toFontChar[g]=i);for(g in f.differences)i=Ac[f.differences[g]],i&&(this.toFontChar[g]=i)}else if(p){this.toFontChar=[];for(g in f.defaultEncoding)h=f.differences[g]||f.defaultEncoding[g],this.toFontChar[g]=zc[h]}else{var u=-1===k.indexOf("CIDFontType");this.toUnicode.forEach(function(a,b){u&&(h=f.differences[a]||f.defaultEncoding[a],b=zc[h]||b),this.toFontChar[a]=b}.bind(this))}return this.loadedName=o.split("-")[0],this.loading=!1,void(this.fontType=P(k,l))}"Type1C"===l&&"Type1"!==k&&"MMType1"!==k&&(m(e)?l="TrueType":k="Type1"),"CIDFontType0C"===l&&"CIDFontType0"!==k&&(k="CIDFontType0"),"OpenType"===l&&(k="OpenType"),"CIDFontType0"===k&&(l=n(e)?"CIDFontType0":"CIDFontType0C");var v;switch(k){case"MMType1":a("MMType1 font ("+d+"), falling back to Type1.");case"Type1":case"CIDFontType0":this.mimetype="font/opentype";var w="Type1C"===l||"CIDFontType0C"===l?new jc(e,f):new ic(d,e,f);O(f),v=this.convert(d,w,f);break;case"OpenType":case"TrueType":case"CIDFontType2":this.mimetype="font/opentype",v=this.checkAndRepair(d,e,f),this.isOpenType&&(k="OpenType");break;default:c("Font "+k+" is not supported")}this.data=v,this.fontType=P(k,l),this.fontMatrix=f.fontMatrix,this.widths=f.widths,this.defaultWidth=f.defaultWidth,this.encoding=f.baseEncoding,this.seacMap=f.seacMap,this.loading=!0}function f(a,b){return(a<<8)+b}function h(a,b,c,d){return(a<<24)+(b<<16)+(c<<8)+d}function j(a){return String.fromCharCode(a>>8&255,255&a)}function l(a){return a=a>32767?32767:-32768>a?-32768:a,String.fromCharCode(a>>8&255,255&a)}function m(a){var b=a.peekBytes(4);return 65536===o(b,0)}function n(a){var b=a.peekBytes(2);return 37===b[0]&&33===b[1]?!0:128===b[0]&&1===b[1]?!0:!1}function p(a){for(var b=0,c=cc.length-1;c>b;){var d=b+c+1>>1;a<cc[d]?c=d-1:b=d}return!(1&b)}function q(a,b){var c=b.toUnicode,d=!!(b.flags&Ob.Symbolic),e=b.toUnicode instanceof ac,f=Object.create(null),g=[],h=[],i=Ib;for(var j in a){j|=0;var k=a[j],l=j;if(!e&&c.has(j)){var m=c.get(l);1===m.length&&(l=m.charCodeAt(0))}if((void 0!==h[l]||p(l)||d&&e)&&Jb>=i)do l=i++,Kb&&61440===l&&(l=61472,i=l+1);while(void 0!==h[l]&&Jb>=i);f[l]=k,g[j]=l,h[l]=!0}return{toFontChar:g,charCodeToGlyphId:f,nextAvailableFontCharCode:i}}function r(a){var b=[];for(var c in a)b.push({fontCharCode:0|c,glyphId:a[c]});b.sort(function(a,b){return a.fontCharCode-b.fontCharCode});for(var d=[],e=b.length,f=0;e>f;){var g=b[f].fontCharCode,h=[b[f].glyphId];++f;for(var i=g;e>f&&i+1===b[f].fontCharCode&&(h.push(b[f].glyphId),++i,++f,65535!==i););d.push([g,i,h])}return d}function s(a){var b,c,d,e,f=r(a),g=f[f.length-1][1]>65535?2:1,h="\x00\x00"+j(g)+"\x00\x00"+k(4+8*g);for(b=f.length-1;b>=0&&!(f[b][0]<=65535);--b);var i=b+1;f[b][0]<65535&&65535===f[b][1]&&(f[b][1]=65534);var l,m,n,o,p=f[b][1]<65535?1:0,q=i+p,s=bc.getSearchParams(q,2),t="",u="",v="",w="",x="",y=0;for(b=0,c=i;c>b;b++){l=f[b],m=l[0],n=l[1],t+=j(m),u+=j(n),o=l[2];var z=!0;for(d=1,e=o.length;e>d;++d)if(o[d]!==o[d-1]+1){z=!1;break}if(z){var A=o[0];v+=j(A-m&65535),w+=j(0)}else{var B=2*(q-b)+2*y;for(y+=n-m+1,v+=j(0),w+=j(B),d=0,e=o.length;e>d;++d)x+=j(o[d])}}p>0&&(u+="ÿÿ",t+="ÿÿ",v+="\x00",w+="\x00\x00");var C="\x00\x00"+j(2*q)+j(s.range)+j(s.entry)+j(s.rangeShift)+u+"\x00\x00"+t+v+w+x,D="",E="";if(g>1){for(h+="\x00\x00\n"+k(4+8*g+4+C.length),D="",b=0,c=f.length;c>b;b++){l=f[b],m=l[0],o=l[2];var F=o[0];for(d=1,e=o.length;e>d;++d)o[d]!==o[d-1]+1&&(n=l[0]+d-1,D+=k(m)+k(n)+k(F),m=n+1,F=o[d]);D+=k(m)+k(l[1])+k(F)}E="\x00\f\x00\x00"+k(D.length+16)+"\x00\x00\x00\x00"+k(D.length/12)}return h+"\x00"+j(C.length+4)+C+E+D}function t(a){var b=new Mc(a.data),c=b.getUint16();b.getBytes(60);var d=b.getUint16();if(4>c&&768&d)return!1;var e=b.getUint16(),f=b.getUint16();if(e>f)return!1;b.getBytes(6);var g=b.getUint16();return 0===g?!1:(a.data[8]=a.data[9]=0,!0)}function u(a,b,d){d=d||{unitsPerEm:0,yMax:0,yMin:0,ascent:0,descent:0};var e=0,f=0,g=0,h=0,i=null,l=0;if(b)for(var m in b){m|=0,(i>m||!i)&&(i=m),m>l&&(l=m);var n=L(m);32>n?e|=1<<n:64>n?f|=1<<n-32:96>n?g|=1<<n-64:123>n?h|=1<<n-96:c("Unicode ranges Bits > 123 are reserved for internal usage")}else i=0,l=255;var o=a.bbox||[0,0,0,0],p=d.unitsPerEm||1/(a.fontMatrix||T)[0],q=a.ascentScaled?1:p/Lb,r=d.ascent||Math.round(q*(a.ascent||o[3])),s=d.descent||Math.round(q*(a.descent||o[1]));s>0&&a.descent>0&&o[1]<0&&(s=-s);var t=d.yMax||r,u=-d.yMin||-s;return"\x00$ô\x00\x00\x00»\x00\x00\x00»\x00\x00ß\x001\x00\x00\x00\x00"+String.fromCharCode(a.fixedPitch?9:0)+"\x00\x00\x00\x00\x00\x00"+k(e)+k(f)+k(g)+k(h)+"*21*"+j(a.italicAngle?1:0)+j(i||a.firstChar)+j(l||a.lastChar)+j(r)+j(s)+"\x00d"+j(t)+j(u)+"\x00\x00\x00\x00\x00\x00\x00\x00"+j(a.xHeight)+j(a.capHeight)+j(0)+j(i||a.firstChar)+"\x00"}function v(a){var b=Math.floor(a.italicAngle*Math.pow(2,16));return"\x00\x00\x00"+k(b)+"\x00\x00\x00\x00"+k(a.fixedPitch)+"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}function w(a,b){b||(b=[[],[]]);var c,d,e,f,g,h=[b[0][0]||"Original licence",b[0][1]||a,b[0][2]||"Unknown",b[0][3]||"uniqueID",b[0][4]||a,b[0][5]||"Version 0.11",b[0][6]||"",b[0][7]||"Unknown",b[0][8]||"Unknown",b[0][9]||"Unknown"],i=[];for(c=0,d=h.length;d>c;c++){g=b[1][c]||h[c];var k=[];for(e=0,f=g.length;f>e;e++)k.push(j(g.charCodeAt(e)));i.push(k.join(""))}var l=[h,i],m=["\x00","\x00"],n=["\x00\x00","\x00"],o=["\x00\x00","	"],p=h.length*m.length,q="\x00\x00"+j(p)+j(12*p+6),r=0;for(c=0,d=m.length;d>c;c++){var s=l[c];for(e=0,f=s.length;f>e;e++){g=s[e];var t=m[c]+n[c]+o[c]+j(e)+j(g.length)+j(r);q+=t,r+=g.length}}return q+=h.join("")+i.join("")}return d.getFontID=function(){var a=1;return function(){return String(a++)}}(),d.prototype={name:null,font:null,mimetype:null,encoding:null,get renderer(){var a=yc.create(this);return g(this,"renderer",a)},exportData:function(){var a={};for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},checkAndRepair:function(d,g,j){function k(a){var b=i(a.getBytes(4)),c=a.getInt32(),d=a.getInt32()>>>0,e=a.getInt32()>>>0,f=a.pos;a.pos=a.start?a.start:0,a.skip(d);var g=a.getBytes(e);return a.pos=f,"head"===b&&(g[8]=g[9]=g[10]=g[11]=0,g[17]|=32),{tag:b,checksum:c,length:e,offset:d,data:g}}function l(a){return{version:i(a.getBytes(4)),numTables:a.getUint16(),searchRange:a.getUint16(),entrySelector:a.getUint16(),rangeShift:a.getUint16()}}function m(a,c,d,e){var f,g=(c.start?c.start:0)+a.offset;c.pos=g;for(var h,i=(c.getUint16(),c.getUint16()),j=!1,k=0;i>k;k++){var l=c.getUint16(),m=c.getUint16(),n=c.getInt32()>>>0,o=!1;if(0===l&&0===m?o=!0:1===l&&0===m?o=!0:3!==l||1!==m||(d||!e)&&h?d&&3===l&&0===m&&(o=!0,j=!0):(o=!0,d||(j=!0)),o&&(h={platformId:l,encodingId:m,offset:n}),j)break}if(h&&(c.pos=g+h.offset),!h||-1===c.peekByte())return b("Could not find a preferred cmap table."),{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1};var p,q,r=c.getUint16(),s=(c.getUint16(),c.getUint16(),!1),t=[];if(0===r){for(p=0;256>p;p++){var u=c.getByte();u&&t.push({charCode:p,glyphId:u})}s=!0}else if(4===r){var v=c.getUint16()>>1;c.getBytes(6);var w,x=[];for(w=0;v>w;w++)x.push({end:c.getUint16()});for(c.getUint16(),w=0;v>w;w++)x[w].start=c.getUint16();for(w=0;v>w;w++)x[w].delta=c.getUint16();var y=0;for(w=0;v>w;w++){f=x[w];var z=c.getUint16();if(z){var A=(z>>1)-(v-w);f.offsetIndex=A,y=Math.max(y,A+f.end-f.start+1)}else f.offsetIndex=-1}var B=[];for(p=0;y>p;p++)B.push(c.getUint16());for(w=0;v>w;w++){f=x[w],g=f.start;var C=f.end,D=f.delta;for(A=f.offsetIndex,p=g;C>=p;p++)65535!==p&&(q=0>A?p:B[A+p-g],q=q+D&65535,0!==q&&t.push({charCode:p,glyphId:q}))}}else{if(6!==r)return b("cmap table has unsupported format: "+r),{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1};var E=c.getUint16(),F=c.getUint16();for(p=0;F>p;p++){q=c.getUint16();var G=E+p;t.push({charCode:G,glyphId:q})}}for(t.sort(function(a,b){return a.charCode-b.charCode}),k=1;k<t.length;k++)t[k-1].charCode===t[k].charCode&&(t.splice(k,1),k--);return{platformId:h.platformId,encodingId:h.encodingId,mappings:t,hasShortCmap:s}}function n(b,c,d,e){if(!c)return void(d&&(d.data=null));b.pos=(b.start?b.start:0)+c.offset,b.pos+=c.length-2;var f=b.getUint16();f>e&&(a("The numOfMetrics ("+f+") should not be greater than the numGlyphs ("+e+")"),f=e,c.data[34]=(65280&f)>>8,c.data[35]=255&f);var g=e-f,h=g-(d.length-4*f>>1);if(h>0){var i=new Uint8Array(d.length+2*h);i.set(d.data),d.data=i}}function o(a,b,c,d,e,f){if(12>=c-b)return 0;var g=a.subarray(b,c),h=g[0]<<8|g[1];if(32768&h)return d.set(g,e),g.length;var i,j=10,k=0;for(i=0;h>i;i++){var l=g[j]<<8|g[j+1];k=l+1,j+=2}var m=j,n=g[j]<<8|g[j+1];j+=2+n;var o=j,p=0;for(i=0;k>i;i++){var q=g[j++];192&q&&(g[j-1]=63&q);var r=(2&q?1:16&q?0:2)+(4&q?1:32&q?0:2);if(p+=r,8&q){var s=g[j++];i+=s,p+=s*r}}if(0===p)return 0;var t=j+p;return t>g.length?0:!f&&n>0?(d.set(g.subarray(0,m),e),d.set([0,0],e+m),d.set(g.subarray(o,t),e+m+2),t-=n,g.length-t>3&&(t=t+3&-4),t):g.length-t>3?(t=t+3&-4,d.set(g.subarray(0,t),e),t):(d.set(g,e),g.length)}function p(c,d,e){var g=c.data,i=h(g[0],g[1],g[2],g[3]);i>>16!==1&&(a("Attempting to fix invalid version in head table: "+i),g[0]=0,g[1]=1,g[2]=0,g[3]=0);var j=f(g[50],g[51]);if(0>j||j>1){a("Attempting to fix invalid indexToLocFormat in head table: "+j);var k=d+1;e===k<<1?(g[50]=0,g[51]=0):e===k<<2?(g[50]=0,g[51]=1):b("Could not fix indexToLocFormat: "+j)}}function r(a,b,c,d,e,f){var g,h,i;d?(g=4,h=function(a,b){return a[b]<<24|a[b+1]<<16|a[b+2]<<8|a[b+3]},i=function(a,b,c){a[b]=c>>>24&255,a[b+1]=c>>16&255,a[b+2]=c>>8&255,a[b+3]=255&c}):(g=2,h=function(a,b){return a[b]<<9|a[b+1]<<1},i=function(a,b,c){a[b]=c>>9&255,a[b+1]=c>>1&255});var j=a.data,k=g*(1+c);j.length!==k&&(j=new Uint8Array(k),j.set(a.data.subarray(0,k)),a.data=j);var l=b.data,m=l.length,n=new Uint8Array(m),p=h(j,0),q=0,r={};i(j,0,q);var s,t;for(s=0,t=g;c>s;s++,t+=g){var u=h(j,t);if(u>m&&(m+3&-4)===u&&(u=m),u>m)i(j,t,q),p=u;else{p===u&&(r[s]=!0);var v=o(l,p,u,n,q,e);q+=v,i(j,t,q),p=u}}if(0===q){var w=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(s=0,t=g;c>s;s++,t+=g)i(j,t,w.length);return b.data=w,r}if(f){var x=h(j,g);n.length>x+q?b.data=n.subarray(0,x+q):(b.data=new Uint8Array(x+q),b.data.set(n.subarray(0,q))),b.data.set(n.subarray(0,x),q),i(a.data,j.length-g,q+x)}else b.data=n.subarray(0,q);return r}function y(a,c,d){var e=(g.start?g.start:0)+a.offset;g.pos=e;var f=a.length,h=e+f,i=g.getInt32();
+Upsilon1:978,Upsilonacutehooksymbolgreek:979,Upsilonafrican:433,Upsilondieresis:939,Upsilondieresishooksymbolgreek:980,Upsilonhooksymbol:978,Upsilontonos:910,Uring:366,Ushortcyrillic:1038,Usmall:63349,Ustraightcyrillic:1198,Ustraightstrokecyrillic:1200,Utilde:360,Utildeacute:7800,Utildebelow:7796,V:86,Vcircle:9419,Vdotbelow:7806,Vecyrillic:1042,Vewarmenian:1358,Vhook:434,Vmonospace:65334,Voarmenian:1352,Vsmall:63350,Vtilde:7804,W:87,Wacute:7810,Wcircle:9420,Wcircumflex:372,Wdieresis:7812,Wdotaccent:7814,Wdotbelow:7816,Wgrave:7808,Wmonospace:65335,Wsmall:63351,X:88,Xcircle:9421,Xdieresis:7820,Xdotaccent:7818,Xeharmenian:1341,Xi:926,Xmonospace:65336,Xsmall:63352,Y:89,Yacute:221,Yacutesmall:63485,Yatcyrillic:1122,Ycircle:9422,Ycircumflex:374,Ydieresis:376,Ydieresissmall:63487,Ydotaccent:7822,Ydotbelow:7924,Yericyrillic:1067,Yerudieresiscyrillic:1272,Ygrave:7922,Yhook:435,Yhookabove:7926,Yiarmenian:1349,Yicyrillic:1031,Yiwnarmenian:1362,Ymonospace:65337,Ysmall:63353,Ytilde:7928,Yusbigcyrillic:1130,Yusbigiotifiedcyrillic:1132,Yuslittlecyrillic:1126,Yuslittleiotifiedcyrillic:1128,Z:90,Zaarmenian:1334,Zacute:377,Zcaron:381,Zcaronsmall:63231,Zcircle:9423,Zcircumflex:7824,Zdot:379,Zdotaccent:379,Zdotbelow:7826,Zecyrillic:1047,Zedescendercyrillic:1176,Zedieresiscyrillic:1246,Zeta:918,Zhearmenian:1338,Zhebrevecyrillic:1217,Zhecyrillic:1046,Zhedescendercyrillic:1174,Zhedieresiscyrillic:1244,Zlinebelow:7828,Zmonospace:65338,Zsmall:63354,Zstroke:437,a:97,aabengali:2438,aacute:225,aadeva:2310,aagujarati:2694,aagurmukhi:2566,aamatragurmukhi:2622,aarusquare:13059,aavowelsignbengali:2494,aavowelsigndeva:2366,aavowelsigngujarati:2750,abbreviationmarkarmenian:1375,abbreviationsigndeva:2416,abengali:2437,abopomofo:12570,abreve:259,abreveacute:7855,abrevecyrillic:1233,abrevedotbelow:7863,abrevegrave:7857,abrevehookabove:7859,abrevetilde:7861,acaron:462,acircle:9424,acircumflex:226,acircumflexacute:7845,acircumflexdotbelow:7853,acircumflexgrave:7847,acircumflexhookabove:7849,acircumflextilde:7851,acute:180,acutebelowcmb:791,acutecmb:769,acutecomb:769,acutedeva:2388,acutelowmod:719,acutetonecmb:833,acyrillic:1072,adblgrave:513,addakgurmukhi:2673,adeva:2309,adieresis:228,adieresiscyrillic:1235,adieresismacron:479,adotbelow:7841,adotmacron:481,ae:230,aeacute:509,aekorean:12624,aemacron:483,afii00208:8213,afii08941:8356,afii10017:1040,afii10018:1041,afii10019:1042,afii10020:1043,afii10021:1044,afii10022:1045,afii10023:1025,afii10024:1046,afii10025:1047,afii10026:1048,afii10027:1049,afii10028:1050,afii10029:1051,afii10030:1052,afii10031:1053,afii10032:1054,afii10033:1055,afii10034:1056,afii10035:1057,afii10036:1058,afii10037:1059,afii10038:1060,afii10039:1061,afii10040:1062,afii10041:1063,afii10042:1064,afii10043:1065,afii10044:1066,afii10045:1067,afii10046:1068,afii10047:1069,afii10048:1070,afii10049:1071,afii10050:1168,afii10051:1026,afii10052:1027,afii10053:1028,afii10054:1029,afii10055:1030,afii10056:1031,afii10057:1032,afii10058:1033,afii10059:1034,afii10060:1035,afii10061:1036,afii10062:1038,afii10063:63172,afii10064:63173,afii10065:1072,afii10066:1073,afii10067:1074,afii10068:1075,afii10069:1076,afii10070:1077,afii10071:1105,afii10072:1078,afii10073:1079,afii10074:1080,afii10075:1081,afii10076:1082,afii10077:1083,afii10078:1084,afii10079:1085,afii10080:1086,afii10081:1087,afii10082:1088,afii10083:1089,afii10084:1090,afii10085:1091,afii10086:1092,afii10087:1093,afii10088:1094,afii10089:1095,afii10090:1096,afii10091:1097,afii10092:1098,afii10093:1099,afii10094:1100,afii10095:1101,afii10096:1102,afii10097:1103,afii10098:1169,afii10099:1106,afii10100:1107,afii10101:1108,afii10102:1109,afii10103:1110,afii10104:1111,afii10105:1112,afii10106:1113,afii10107:1114,afii10108:1115,afii10109:1116,afii10110:1118,afii10145:1039,afii10146:1122,afii10147:1138,afii10148:1140,afii10192:63174,afii10193:1119,afii10194:1123,afii10195:1139,afii10196:1141,afii10831:63175,afii10832:63176,afii10846:1241,afii299:8206,afii300:8207,afii301:8205,afii57381:1642,afii57388:1548,afii57392:1632,afii57393:1633,afii57394:1634,afii57395:1635,afii57396:1636,afii57397:1637,afii57398:1638,afii57399:1639,afii57400:1640,afii57401:1641,afii57403:1563,afii57407:1567,afii57409:1569,afii57410:1570,afii57411:1571,afii57412:1572,afii57413:1573,afii57414:1574,afii57415:1575,afii57416:1576,afii57417:1577,afii57418:1578,afii57419:1579,afii57420:1580,afii57421:1581,afii57422:1582,afii57423:1583,afii57424:1584,afii57425:1585,afii57426:1586,afii57427:1587,afii57428:1588,afii57429:1589,afii57430:1590,afii57431:1591,afii57432:1592,afii57433:1593,afii57434:1594,afii57440:1600,afii57441:1601,afii57442:1602,afii57443:1603,afii57444:1604,afii57445:1605,afii57446:1606,afii57448:1608,afii57449:1609,afii57450:1610,afii57451:1611,afii57452:1612,afii57453:1613,afii57454:1614,afii57455:1615,afii57456:1616,afii57457:1617,afii57458:1618,afii57470:1607,afii57505:1700,afii57506:1662,afii57507:1670,afii57508:1688,afii57509:1711,afii57511:1657,afii57512:1672,afii57513:1681,afii57514:1722,afii57519:1746,afii57534:1749,afii57636:8362,afii57645:1470,afii57658:1475,afii57664:1488,afii57665:1489,afii57666:1490,afii57667:1491,afii57668:1492,afii57669:1493,afii57670:1494,afii57671:1495,afii57672:1496,afii57673:1497,afii57674:1498,afii57675:1499,afii57676:1500,afii57677:1501,afii57678:1502,afii57679:1503,afii57680:1504,afii57681:1505,afii57682:1506,afii57683:1507,afii57684:1508,afii57685:1509,afii57686:1510,afii57687:1511,afii57688:1512,afii57689:1513,afii57690:1514,afii57694:64298,afii57695:64299,afii57700:64331,afii57705:64287,afii57716:1520,afii57717:1521,afii57718:1522,afii57723:64309,afii57793:1460,afii57794:1461,afii57795:1462,afii57796:1467,afii57797:1464,afii57798:1463,afii57799:1456,afii57800:1458,afii57801:1457,afii57802:1459,afii57803:1474,afii57804:1473,afii57806:1465,afii57807:1468,afii57839:1469,afii57841:1471,afii57842:1472,afii57929:700,afii61248:8453,afii61289:8467,afii61352:8470,afii61573:8236,afii61574:8237,afii61575:8238,afii61664:8204,afii63167:1645,afii64937:701,agrave:224,agujarati:2693,agurmukhi:2565,ahiragana:12354,ahookabove:7843,aibengali:2448,aibopomofo:12574,aideva:2320,aiecyrillic:1237,aigujarati:2704,aigurmukhi:2576,aimatragurmukhi:2632,ainarabic:1593,ainfinalarabic:65226,aininitialarabic:65227,ainmedialarabic:65228,ainvertedbreve:515,aivowelsignbengali:2504,aivowelsigndeva:2376,aivowelsigngujarati:2760,akatakana:12450,akatakanahalfwidth:65393,akorean:12623,alef:1488,alefarabic:1575,alefdageshhebrew:64304,aleffinalarabic:65166,alefhamzaabovearabic:1571,alefhamzaabovefinalarabic:65156,alefhamzabelowarabic:1573,alefhamzabelowfinalarabic:65160,alefhebrew:1488,aleflamedhebrew:64335,alefmaddaabovearabic:1570,alefmaddaabovefinalarabic:65154,alefmaksuraarabic:1609,alefmaksurafinalarabic:65264,alefmaksurainitialarabic:65267,alefmaksuramedialarabic:65268,alefpatahhebrew:64302,alefqamatshebrew:64303,aleph:8501,allequal:8780,alpha:945,alphatonos:940,amacron:257,amonospace:65345,ampersand:38,ampersandmonospace:65286,ampersandsmall:63270,amsquare:13250,anbopomofo:12578,angbopomofo:12580,angbracketleft:12296,angbracketright:12297,angkhankhuthai:3674,angle:8736,anglebracketleft:12296,anglebracketleftvertical:65087,anglebracketright:12297,anglebracketrightvertical:65088,angleleft:9001,angleright:9002,angstrom:8491,anoteleia:903,anudattadeva:2386,anusvarabengali:2434,anusvaradeva:2306,anusvaragujarati:2690,aogonek:261,apaatosquare:13056,aparen:9372,apostrophearmenian:1370,apostrophemod:700,apple:63743,approaches:8784,approxequal:8776,approxequalorimage:8786,approximatelyequal:8773,araeaekorean:12686,araeakorean:12685,arc:8978,arighthalfring:7834,aring:229,aringacute:507,aringbelow:7681,arrowboth:8596,arrowdashdown:8675,arrowdashleft:8672,arrowdashright:8674,arrowdashup:8673,arrowdblboth:8660,arrowdbldown:8659,arrowdblleft:8656,arrowdblright:8658,arrowdblup:8657,arrowdown:8595,arrowdownleft:8601,arrowdownright:8600,arrowdownwhite:8681,arrowheaddownmod:709,arrowheadleftmod:706,arrowheadrightmod:707,arrowheadupmod:708,arrowhorizex:63719,arrowleft:8592,arrowleftdbl:8656,arrowleftdblstroke:8653,arrowleftoverright:8646,arrowleftwhite:8678,arrowright:8594,arrowrightdblstroke:8655,arrowrightheavy:10142,arrowrightoverleft:8644,arrowrightwhite:8680,arrowtableft:8676,arrowtabright:8677,arrowup:8593,arrowupdn:8597,arrowupdnbse:8616,arrowupdownbase:8616,arrowupleft:8598,arrowupleftofdown:8645,arrowupright:8599,arrowupwhite:8679,arrowvertex:63718,asciicircum:94,asciicircummonospace:65342,asciitilde:126,asciitildemonospace:65374,ascript:593,ascriptturned:594,asmallhiragana:12353,asmallkatakana:12449,asmallkatakanahalfwidth:65383,asterisk:42,asteriskaltonearabic:1645,asteriskarabic:1645,asteriskmath:8727,asteriskmonospace:65290,asterisksmall:65121,asterism:8258,asuperior:63209,asymptoticallyequal:8771,at:64,atilde:227,atmonospace:65312,atsmall:65131,aturned:592,aubengali:2452,aubopomofo:12576,audeva:2324,augujarati:2708,augurmukhi:2580,aulengthmarkbengali:2519,aumatragurmukhi:2636,auvowelsignbengali:2508,auvowelsigndeva:2380,auvowelsigngujarati:2764,avagrahadeva:2365,aybarmenian:1377,ayin:1506,ayinaltonehebrew:64288,ayinhebrew:1506,b:98,babengali:2476,backslash:92,backslashmonospace:65340,badeva:2348,bagujarati:2732,bagurmukhi:2604,bahiragana:12400,bahtthai:3647,bakatakana:12496,bar:124,barmonospace:65372,bbopomofo:12549,bcircle:9425,bdotaccent:7683,bdotbelow:7685,beamedsixteenthnotes:9836,because:8757,becyrillic:1073,beharabic:1576,behfinalarabic:65168,behinitialarabic:65169,behiragana:12409,behmedialarabic:65170,behmeeminitialarabic:64671,behmeemisolatedarabic:64520,behnoonfinalarabic:64621,bekatakana:12505,benarmenian:1378,bet:1489,beta:946,betasymbolgreek:976,betdagesh:64305,betdageshhebrew:64305,bethebrew:1489,betrafehebrew:64332,bhabengali:2477,bhadeva:2349,bhagujarati:2733,bhagurmukhi:2605,bhook:595,bihiragana:12403,bikatakana:12499,bilabialclick:664,bindigurmukhi:2562,birusquare:13105,blackcircle:9679,blackdiamond:9670,blackdownpointingtriangle:9660,blackleftpointingpointer:9668,blackleftpointingtriangle:9664,blacklenticularbracketleft:12304,blacklenticularbracketleftvertical:65083,blacklenticularbracketright:12305,blacklenticularbracketrightvertical:65084,blacklowerlefttriangle:9699,blacklowerrighttriangle:9698,blackrectangle:9644,blackrightpointingpointer:9658,blackrightpointingtriangle:9654,blacksmallsquare:9642,blacksmilingface:9787,blacksquare:9632,blackstar:9733,blackupperlefttriangle:9700,blackupperrighttriangle:9701,blackuppointingsmalltriangle:9652,blackuppointingtriangle:9650,blank:9251,blinebelow:7687,block:9608,bmonospace:65346,bobaimaithai:3610,bohiragana:12412,bokatakana:12508,bparen:9373,bqsquare:13251,braceex:63732,braceleft:123,braceleftbt:63731,braceleftmid:63730,braceleftmonospace:65371,braceleftsmall:65115,bracelefttp:63729,braceleftvertical:65079,braceright:125,bracerightbt:63742,bracerightmid:63741,bracerightmonospace:65373,bracerightsmall:65116,bracerighttp:63740,bracerightvertical:65080,bracketleft:91,bracketleftbt:63728,bracketleftex:63727,bracketleftmonospace:65339,bracketlefttp:63726,bracketright:93,bracketrightbt:63739,bracketrightex:63738,bracketrightmonospace:65341,bracketrighttp:63737,breve:728,brevebelowcmb:814,brevecmb:774,breveinvertedbelowcmb:815,breveinvertedcmb:785,breveinverteddoublecmb:865,bridgebelowcmb:810,bridgeinvertedbelowcmb:826,brokenbar:166,bstroke:384,bsuperior:63210,btopbar:387,buhiragana:12406,bukatakana:12502,bullet:8226,bulletinverse:9688,bulletoperator:8729,bullseye:9678,c:99,caarmenian:1390,cabengali:2458,cacute:263,cadeva:2330,cagujarati:2714,cagurmukhi:2586,calsquare:13192,candrabindubengali:2433,candrabinducmb:784,candrabindudeva:2305,candrabindugujarati:2689,capslock:8682,careof:8453,caron:711,caronbelowcmb:812,caroncmb:780,carriagereturn:8629,cbopomofo:12568,ccaron:269,ccedilla:231,ccedillaacute:7689,ccircle:9426,ccircumflex:265,ccurl:597,cdot:267,cdotaccent:267,cdsquare:13253,cedilla:184,cedillacmb:807,cent:162,centigrade:8451,centinferior:63199,centmonospace:65504,centoldstyle:63394,centsuperior:63200,chaarmenian:1401,chabengali:2459,chadeva:2331,chagujarati:2715,chagurmukhi:2587,chbopomofo:12564,cheabkhasiancyrillic:1213,checkmark:10003,checyrillic:1095,chedescenderabkhasiancyrillic:1215,chedescendercyrillic:1207,chedieresiscyrillic:1269,cheharmenian:1395,chekhakassiancyrillic:1228,cheverticalstrokecyrillic:1209,chi:967,chieuchacirclekorean:12919,chieuchaparenkorean:12823,chieuchcirclekorean:12905,chieuchkorean:12618,chieuchparenkorean:12809,chochangthai:3594,chochanthai:3592,chochingthai:3593,chochoethai:3596,chook:392,cieucacirclekorean:12918,cieucaparenkorean:12822,cieuccirclekorean:12904,cieuckorean:12616,cieucparenkorean:12808,cieucuparenkorean:12828,circle:9675,circlecopyrt:169,circlemultiply:8855,circleot:8857,circleplus:8853,circlepostalmark:12342,circlewithlefthalfblack:9680,circlewithrighthalfblack:9681,circumflex:710,circumflexbelowcmb:813,circumflexcmb:770,clear:8999,clickalveolar:450,clickdental:448,clicklateral:449,clickretroflex:451,club:9827,clubsuitblack:9827,clubsuitwhite:9831,cmcubedsquare:13220,cmonospace:65347,cmsquaredsquare:13216,coarmenian:1409,colon:58,colonmonetary:8353,colonmonospace:65306,colonsign:8353,colonsmall:65109,colontriangularhalfmod:721,colontriangularmod:720,comma:44,commaabovecmb:787,commaaboverightcmb:789,commaaccent:63171,commaarabic:1548,commaarmenian:1373,commainferior:63201,commamonospace:65292,commareversedabovecmb:788,commareversedmod:701,commasmall:65104,commasuperior:63202,commaturnedabovecmb:786,commaturnedmod:699,compass:9788,congruent:8773,contourintegral:8750,control:8963,controlACK:6,controlBEL:7,controlBS:8,controlCAN:24,controlCR:13,controlDC1:17,controlDC2:18,controlDC3:19,controlDC4:20,controlDEL:127,controlDLE:16,controlEM:25,controlENQ:5,controlEOT:4,controlESC:27,controlETB:23,controlETX:3,controlFF:12,controlFS:28,controlGS:29,controlHT:9,controlLF:10,controlNAK:21,controlRS:30,controlSI:15,controlSO:14,controlSOT:2,controlSTX:1,controlSUB:26,controlSYN:22,controlUS:31,controlVT:11,copyright:169,copyrightsans:63721,copyrightserif:63193,cornerbracketleft:12300,cornerbracketlefthalfwidth:65378,cornerbracketleftvertical:65089,cornerbracketright:12301,cornerbracketrighthalfwidth:65379,cornerbracketrightvertical:65090,corporationsquare:13183,cosquare:13255,coverkgsquare:13254,cparen:9374,cruzeiro:8354,cstretched:663,curlyand:8911,curlyor:8910,currency:164,cyrBreve:63185,cyrFlex:63186,cyrbreve:63188,cyrflex:63189,d:100,daarmenian:1380,dabengali:2470,dadarabic:1590,dadeva:2342,dadfinalarabic:65214,dadinitialarabic:65215,dadmedialarabic:65216,dagesh:1468,dageshhebrew:1468,dagger:8224,daggerdbl:8225,dagujarati:2726,dagurmukhi:2598,dahiragana:12384,dakatakana:12480,dalarabic:1583,dalet:1491,daletdagesh:64307,daletdageshhebrew:64307,dalethebrew:1491,dalfinalarabic:65194,dammaarabic:1615,dammalowarabic:1615,dammatanaltonearabic:1612,dammatanarabic:1612,danda:2404,dargahebrew:1447,dargalefthebrew:1447,dasiapneumatacyrilliccmb:1157,dblGrave:63187,dblanglebracketleft:12298,dblanglebracketleftvertical:65085,dblanglebracketright:12299,dblanglebracketrightvertical:65086,dblarchinvertedbelowcmb:811,dblarrowleft:8660,dblarrowright:8658,dbldanda:2405,dblgrave:63190,dblgravecmb:783,dblintegral:8748,dbllowline:8215,dbllowlinecmb:819,dbloverlinecmb:831,dblprimemod:698,dblverticalbar:8214,dblverticallineabovecmb:782,dbopomofo:12553,dbsquare:13256,dcaron:271,dcedilla:7697,dcircle:9427,dcircumflexbelow:7699,dcroat:273,ddabengali:2465,ddadeva:2337,ddagujarati:2721,ddagurmukhi:2593,ddalarabic:1672,ddalfinalarabic:64393,dddhadeva:2396,ddhabengali:2466,ddhadeva:2338,ddhagujarati:2722,ddhagurmukhi:2594,ddotaccent:7691,ddotbelow:7693,decimalseparatorarabic:1643,decimalseparatorpersian:1643,decyrillic:1076,degree:176,dehihebrew:1453,dehiragana:12391,deicoptic:1007,dekatakana:12487,deleteleft:9003,deleteright:8998,delta:948,deltaturned:397,denominatorminusonenumeratorbengali:2552,dezh:676,dhabengali:2471,dhadeva:2343,dhagujarati:2727,dhagurmukhi:2599,dhook:599,dialytikatonos:901,dialytikatonoscmb:836,diamond:9830,diamondsuitwhite:9826,dieresis:168,dieresisacute:63191,dieresisbelowcmb:804,dieresiscmb:776,dieresisgrave:63192,dieresistonos:901,dihiragana:12386,dikatakana:12482,dittomark:12291,divide:247,divides:8739,divisionslash:8725,djecyrillic:1106,dkshade:9619,dlinebelow:7695,dlsquare:13207,dmacron:273,dmonospace:65348,dnblock:9604,dochadathai:3598,dodekthai:3604,dohiragana:12393,dokatakana:12489,dollar:36,dollarinferior:63203,dollarmonospace:65284,dollaroldstyle:63268,dollarsmall:65129,dollarsuperior:63204,dong:8363,dorusquare:13094,dotaccent:729,dotaccentcmb:775,dotbelowcmb:803,dotbelowcomb:803,dotkatakana:12539,dotlessi:305,dotlessj:63166,dotlessjstrokehook:644,dotmath:8901,dottedcircle:9676,doubleyodpatah:64287,doubleyodpatahhebrew:64287,downtackbelowcmb:798,downtackmod:725,dparen:9375,dsuperior:63211,dtail:598,dtopbar:396,duhiragana:12389,dukatakana:12485,dz:499,dzaltone:675,dzcaron:454,dzcurl:677,dzeabkhasiancyrillic:1249,dzecyrillic:1109,dzhecyrillic:1119,e:101,eacute:233,earth:9793,ebengali:2447,ebopomofo:12572,ebreve:277,ecandradeva:2317,ecandragujarati:2701,ecandravowelsigndeva:2373,ecandravowelsigngujarati:2757,ecaron:283,ecedillabreve:7709,echarmenian:1381,echyiwnarmenian:1415,ecircle:9428,ecircumflex:234,ecircumflexacute:7871,ecircumflexbelow:7705,ecircumflexdotbelow:7879,ecircumflexgrave:7873,ecircumflexhookabove:7875,ecircumflextilde:7877,ecyrillic:1108,edblgrave:517,edeva:2319,edieresis:235,edot:279,edotaccent:279,edotbelow:7865,eegurmukhi:2575,eematragurmukhi:2631,efcyrillic:1092,egrave:232,egujarati:2703,eharmenian:1383,ehbopomofo:12573,ehiragana:12360,ehookabove:7867,eibopomofo:12575,eight:56,eightarabic:1640,eightbengali:2542,eightcircle:9319,eightcircleinversesansserif:10129,eightdeva:2414,eighteencircle:9329,eighteenparen:9349,eighteenperiod:9369,eightgujarati:2798,eightgurmukhi:2670,eighthackarabic:1640,eighthangzhou:12328,eighthnotebeamed:9835,eightideographicparen:12839,eightinferior:8328,eightmonospace:65304,eightoldstyle:63288,eightparen:9339,eightperiod:9359,eightpersian:1784,eightroman:8567,eightsuperior:8312,eightthai:3672,einvertedbreve:519,eiotifiedcyrillic:1125,ekatakana:12456,ekatakanahalfwidth:65396,ekonkargurmukhi:2676,ekorean:12628,elcyrillic:1083,element:8712,elevencircle:9322,elevenparen:9342,elevenperiod:9362,elevenroman:8570,ellipsis:8230,ellipsisvertical:8942,emacron:275,emacronacute:7703,emacrongrave:7701,emcyrillic:1084,emdash:8212,emdashvertical:65073,emonospace:65349,emphasismarkarmenian:1371,emptyset:8709,enbopomofo:12579,encyrillic:1085,endash:8211,endashvertical:65074,endescendercyrillic:1187,eng:331,engbopomofo:12581,enghecyrillic:1189,enhookcyrillic:1224,enspace:8194,eogonek:281,eokorean:12627,eopen:603,eopenclosed:666,eopenreversed:604,eopenreversedclosed:606,eopenreversedhook:605,eparen:9376,epsilon:949,epsilontonos:941,equal:61,equalmonospace:65309,equalsmall:65126,equalsuperior:8316,equivalence:8801,erbopomofo:12582,ercyrillic:1088,ereversed:600,ereversedcyrillic:1101,escyrillic:1089,esdescendercyrillic:1195,esh:643,eshcurl:646,eshortdeva:2318,eshortvowelsigndeva:2374,eshreversedloop:426,eshsquatreversed:645,esmallhiragana:12359,esmallkatakana:12455,esmallkatakanahalfwidth:65386,estimated:8494,esuperior:63212,eta:951,etarmenian:1384,etatonos:942,eth:240,etilde:7869,etildebelow:7707,etnahtafoukhhebrew:1425,etnahtafoukhlefthebrew:1425,etnahtahebrew:1425,etnahtalefthebrew:1425,eturned:477,eukorean:12641,euro:8364,evowelsignbengali:2503,evowelsigndeva:2375,evowelsigngujarati:2759,exclam:33,exclamarmenian:1372,exclamdbl:8252,exclamdown:161,exclamdownsmall:63393,exclammonospace:65281,exclamsmall:63265,existential:8707,ezh:658,ezhcaron:495,ezhcurl:659,ezhreversed:441,ezhtail:442,f:102,fadeva:2398,fagurmukhi:2654,fahrenheit:8457,fathaarabic:1614,fathalowarabic:1614,fathatanarabic:1611,fbopomofo:12552,fcircle:9429,fdotaccent:7711,feharabic:1601,feharmenian:1414,fehfinalarabic:65234,fehinitialarabic:65235,fehmedialarabic:65236,feicoptic:997,female:9792,ff:64256,ffi:64259,ffl:64260,fi:64257,fifteencircle:9326,fifteenparen:9346,fifteenperiod:9366,figuredash:8210,filledbox:9632,filledrect:9644,finalkaf:1498,finalkafdagesh:64314,finalkafdageshhebrew:64314,finalkafhebrew:1498,finalmem:1501,finalmemhebrew:1501,finalnun:1503,finalnunhebrew:1503,finalpe:1507,finalpehebrew:1507,finaltsadi:1509,finaltsadihebrew:1509,firsttonechinese:713,fisheye:9673,fitacyrillic:1139,five:53,fivearabic:1637,fivebengali:2539,fivecircle:9316,fivecircleinversesansserif:10126,fivedeva:2411,fiveeighths:8541,fivegujarati:2795,fivegurmukhi:2667,fivehackarabic:1637,fivehangzhou:12325,fiveideographicparen:12836,fiveinferior:8325,fivemonospace:65301,fiveoldstyle:63285,fiveparen:9336,fiveperiod:9356,fivepersian:1781,fiveroman:8564,fivesuperior:8309,fivethai:3669,fl:64258,florin:402,fmonospace:65350,fmsquare:13209,fofanthai:3615,fofathai:3613,fongmanthai:3663,forall:8704,four:52,fourarabic:1636,fourbengali:2538,fourcircle:9315,fourcircleinversesansserif:10125,fourdeva:2410,fourgujarati:2794,fourgurmukhi:2666,fourhackarabic:1636,fourhangzhou:12324,fourideographicparen:12835,fourinferior:8324,fourmonospace:65300,fournumeratorbengali:2551,fouroldstyle:63284,fourparen:9335,fourperiod:9355,fourpersian:1780,fourroman:8563,foursuperior:8308,fourteencircle:9325,fourteenparen:9345,fourteenperiod:9365,fourthai:3668,fourthtonechinese:715,fparen:9377,fraction:8260,franc:8355,g:103,gabengali:2455,gacute:501,gadeva:2327,gafarabic:1711,gaffinalarabic:64403,gafinitialarabic:64404,gafmedialarabic:64405,gagujarati:2711,gagurmukhi:2583,gahiragana:12364,gakatakana:12460,gamma:947,gammalatinsmall:611,gammasuperior:736,gangiacoptic:1003,gbopomofo:12557,gbreve:287,gcaron:487,gcedilla:291,gcircle:9430,gcircumflex:285,gcommaaccent:291,gdot:289,gdotaccent:289,gecyrillic:1075,gehiragana:12370,gekatakana:12466,geometricallyequal:8785,gereshaccenthebrew:1436,gereshhebrew:1523,gereshmuqdamhebrew:1437,germandbls:223,gershayimaccenthebrew:1438,gershayimhebrew:1524,getamark:12307,ghabengali:2456,ghadarmenian:1394,ghadeva:2328,ghagujarati:2712,ghagurmukhi:2584,ghainarabic:1594,ghainfinalarabic:65230,ghaininitialarabic:65231,ghainmedialarabic:65232,ghemiddlehookcyrillic:1173,ghestrokecyrillic:1171,gheupturncyrillic:1169,ghhadeva:2394,ghhagurmukhi:2650,ghook:608,ghzsquare:13203,gihiragana:12366,gikatakana:12462,gimarmenian:1379,gimel:1490,gimeldagesh:64306,gimeldageshhebrew:64306,gimelhebrew:1490,gjecyrillic:1107,glottalinvertedstroke:446,glottalstop:660,glottalstopinverted:662,glottalstopmod:704,glottalstopreversed:661,glottalstopreversedmod:705,glottalstopreversedsuperior:740,glottalstopstroke:673,glottalstopstrokereversed:674,gmacron:7713,gmonospace:65351,gohiragana:12372,gokatakana:12468,gparen:9378,gpasquare:13228,gradient:8711,grave:96,gravebelowcmb:790,gravecmb:768,gravecomb:768,gravedeva:2387,gravelowmod:718,gravemonospace:65344,gravetonecmb:832,greater:62,greaterequal:8805,greaterequalorless:8923,greatermonospace:65310,greaterorequivalent:8819,greaterorless:8823,greateroverequal:8807,greatersmall:65125,gscript:609,gstroke:485,guhiragana:12368,guillemotleft:171,guillemotright:187,guilsinglleft:8249,guilsinglright:8250,gukatakana:12464,guramusquare:13080,gysquare:13257,h:104,haabkhasiancyrillic:1193,haaltonearabic:1729,habengali:2489,hadescendercyrillic:1203,hadeva:2361,hagujarati:2745,hagurmukhi:2617,haharabic:1581,hahfinalarabic:65186,hahinitialarabic:65187,hahiragana:12399,hahmedialarabic:65188,haitusquare:13098,hakatakana:12495,hakatakanahalfwidth:65418,halantgurmukhi:2637,hamzaarabic:1569,hamzalowarabic:1569,hangulfiller:12644,hardsigncyrillic:1098,harpoonleftbarbup:8636,harpoonrightbarbup:8640,hasquare:13258,hatafpatah:1458,hatafpatah16:1458,hatafpatah23:1458,hatafpatah2f:1458,hatafpatahhebrew:1458,hatafpatahnarrowhebrew:1458,hatafpatahquarterhebrew:1458,hatafpatahwidehebrew:1458,hatafqamats:1459,hatafqamats1b:1459,hatafqamats28:1459,hatafqamats34:1459,hatafqamatshebrew:1459,hatafqamatsnarrowhebrew:1459,hatafqamatsquarterhebrew:1459,hatafqamatswidehebrew:1459,hatafsegol:1457,hatafsegol17:1457,hatafsegol24:1457,hatafsegol30:1457,hatafsegolhebrew:1457,hatafsegolnarrowhebrew:1457,hatafsegolquarterhebrew:1457,hatafsegolwidehebrew:1457,hbar:295,hbopomofo:12559,hbrevebelow:7723,hcedilla:7721,hcircle:9431,hcircumflex:293,hdieresis:7719,hdotaccent:7715,hdotbelow:7717,he:1492,heart:9829,heartsuitblack:9829,heartsuitwhite:9825,hedagesh:64308,hedageshhebrew:64308,hehaltonearabic:1729,heharabic:1607,hehebrew:1492,hehfinalaltonearabic:64423,hehfinalalttwoarabic:65258,hehfinalarabic:65258,hehhamzaabovefinalarabic:64421,hehhamzaaboveisolatedarabic:64420,hehinitialaltonearabic:64424,hehinitialarabic:65259,hehiragana:12408,hehmedialaltonearabic:64425,hehmedialarabic:65260,heiseierasquare:13179,hekatakana:12504,hekatakanahalfwidth:65421,hekutaarusquare:13110,henghook:615,herutusquare:13113,het:1495,hethebrew:1495,hhook:614,hhooksuperior:689,hieuhacirclekorean:12923,hieuhaparenkorean:12827,hieuhcirclekorean:12909,hieuhkorean:12622,hieuhparenkorean:12813,hihiragana:12402,hikatakana:12498,hikatakanahalfwidth:65419,hiriq:1460,hiriq14:1460,hiriq21:1460,hiriq2d:1460,hiriqhebrew:1460,hiriqnarrowhebrew:1460,hiriqquarterhebrew:1460,hiriqwidehebrew:1460,hlinebelow:7830,hmonospace:65352,hoarmenian:1392,hohipthai:3627,hohiragana:12411,hokatakana:12507,hokatakanahalfwidth:65422,holam:1465,holam19:1465,holam26:1465,holam32:1465,holamhebrew:1465,holamnarrowhebrew:1465,holamquarterhebrew:1465,holamwidehebrew:1465,honokhukthai:3630,hookabovecomb:777,hookcmb:777,hookpalatalizedbelowcmb:801,hookretroflexbelowcmb:802,hoonsquare:13122,horicoptic:1001,horizontalbar:8213,horncmb:795,hotsprings:9832,house:8962,hparen:9379,hsuperior:688,hturned:613,huhiragana:12405,huiitosquare:13107,hukatakana:12501,hukatakanahalfwidth:65420,hungarumlaut:733,hungarumlautcmb:779,hv:405,hyphen:45,hypheninferior:63205,hyphenmonospace:65293,hyphensmall:65123,hyphensuperior:63206,hyphentwo:8208,i:105,iacute:237,iacyrillic:1103,ibengali:2439,ibopomofo:12583,ibreve:301,icaron:464,icircle:9432,icircumflex:238,icyrillic:1110,idblgrave:521,ideographearthcircle:12943,ideographfirecircle:12939,ideographicallianceparen:12863,ideographiccallparen:12858,ideographiccentrecircle:12965,ideographicclose:12294,ideographiccomma:12289,ideographiccommaleft:65380,ideographiccongratulationparen:12855,ideographiccorrectcircle:12963,ideographicearthparen:12847,ideographicenterpriseparen:12861,ideographicexcellentcircle:12957,ideographicfestivalparen:12864,ideographicfinancialcircle:12950,ideographicfinancialparen:12854,ideographicfireparen:12843,ideographichaveparen:12850,ideographichighcircle:12964,ideographiciterationmark:12293,ideographiclaborcircle:12952,ideographiclaborparen:12856,ideographicleftcircle:12967,ideographiclowcircle:12966,ideographicmedicinecircle:12969,ideographicmetalparen:12846,ideographicmoonparen:12842,ideographicnameparen:12852,ideographicperiod:12290,ideographicprintcircle:12958,ideographicreachparen:12867,ideographicrepresentparen:12857,ideographicresourceparen:12862,ideographicrightcircle:12968,ideographicsecretcircle:12953,ideographicselfparen:12866,ideographicsocietyparen:12851,ideographicspace:12288,ideographicspecialparen:12853,ideographicstockparen:12849,ideographicstudyparen:12859,ideographicsunparen:12848,ideographicsuperviseparen:12860,ideographicwaterparen:12844,ideographicwoodparen:12845,ideographiczero:12295,ideographmetalcircle:12942,ideographmooncircle:12938,ideographnamecircle:12948,ideographsuncircle:12944,ideographwatercircle:12940,ideographwoodcircle:12941,ideva:2311,idieresis:239,idieresisacute:7727,idieresiscyrillic:1253,idotbelow:7883,iebrevecyrillic:1239,iecyrillic:1077,ieungacirclekorean:12917,ieungaparenkorean:12821,ieungcirclekorean:12903,ieungkorean:12615,ieungparenkorean:12807,igrave:236,igujarati:2695,igurmukhi:2567,ihiragana:12356,ihookabove:7881,iibengali:2440,iicyrillic:1080,iideva:2312,iigujarati:2696,iigurmukhi:2568,iimatragurmukhi:2624,iinvertedbreve:523,iishortcyrillic:1081,iivowelsignbengali:2496,iivowelsigndeva:2368,iivowelsigngujarati:2752,ij:307,ikatakana:12452,ikatakanahalfwidth:65394,ikorean:12643,ilde:732,iluyhebrew:1452,imacron:299,imacroncyrillic:1251,imageorapproximatelyequal:8787,imatragurmukhi:2623,imonospace:65353,increment:8710,infinity:8734,iniarmenian:1387,integral:8747,integralbottom:8993,integralbt:8993,integralex:63733,integraltop:8992,integraltp:8992,intersection:8745,intisquare:13061,invbullet:9688,invcircle:9689,invsmileface:9787,iocyrillic:1105,iogonek:303,iota:953,iotadieresis:970,iotadieresistonos:912,iotalatin:617,iotatonos:943,iparen:9380,irigurmukhi:2674,ismallhiragana:12355,ismallkatakana:12451,ismallkatakanahalfwidth:65384,issharbengali:2554,istroke:616,isuperior:63213,iterationhiragana:12445,iterationkatakana:12541,itilde:297,itildebelow:7725,iubopomofo:12585,iucyrillic:1102,ivowelsignbengali:2495,ivowelsigndeva:2367,ivowelsigngujarati:2751,izhitsacyrillic:1141,izhitsadblgravecyrillic:1143,j:106,jaarmenian:1393,jabengali:2460,jadeva:2332,jagujarati:2716,jagurmukhi:2588,jbopomofo:12560,jcaron:496,jcircle:9433,jcircumflex:309,jcrossedtail:669,jdotlessstroke:607,jecyrillic:1112,jeemarabic:1580,jeemfinalarabic:65182,jeeminitialarabic:65183,jeemmedialarabic:65184,jeharabic:1688,jehfinalarabic:64395,jhabengali:2461,jhadeva:2333,jhagujarati:2717,jhagurmukhi:2589,jheharmenian:1403,jis:12292,jmonospace:65354,jparen:9381,jsuperior:690,k:107,kabashkircyrillic:1185,kabengali:2453,kacute:7729,kacyrillic:1082,kadescendercyrillic:1179,kadeva:2325,kaf:1499,kafarabic:1603,kafdagesh:64315,kafdageshhebrew:64315,kaffinalarabic:65242,kafhebrew:1499,kafinitialarabic:65243,kafmedialarabic:65244,kafrafehebrew:64333,kagujarati:2709,kagurmukhi:2581,kahiragana:12363,kahookcyrillic:1220,kakatakana:12459,kakatakanahalfwidth:65398,kappa:954,kappasymbolgreek:1008,kapyeounmieumkorean:12657,kapyeounphieuphkorean:12676,kapyeounpieupkorean:12664,kapyeounssangpieupkorean:12665,karoriisquare:13069,kashidaautoarabic:1600,kashidaautonosidebearingarabic:1600,kasmallkatakana:12533,kasquare:13188,kasraarabic:1616,kasratanarabic:1613,kastrokecyrillic:1183,katahiraprolongmarkhalfwidth:65392,kaverticalstrokecyrillic:1181,kbopomofo:12558,kcalsquare:13193,kcaron:489,kcedilla:311,kcircle:9434,kcommaaccent:311,kdotbelow:7731,keharmenian:1412,kehiragana:12369,kekatakana:12465,kekatakanahalfwidth:65401,kenarmenian:1391,kesmallkatakana:12534,kgreenlandic:312,khabengali:2454,khacyrillic:1093,khadeva:2326,khagujarati:2710,khagurmukhi:2582,khaharabic:1582,khahfinalarabic:65190,khahinitialarabic:65191,khahmedialarabic:65192,kheicoptic:999,khhadeva:2393,khhagurmukhi:2649,khieukhacirclekorean:12920,khieukhaparenkorean:12824,khieukhcirclekorean:12906,khieukhkorean:12619,khieukhparenkorean:12810,khokhaithai:3586,khokhonthai:3589,khokhuatthai:3587,khokhwaithai:3588,khomutthai:3675,khook:409,khorakhangthai:3590,khzsquare:13201,kihiragana:12365,kikatakana:12461,kikatakanahalfwidth:65399,kiroguramusquare:13077,kiromeetorusquare:13078,kirosquare:13076,kiyeokacirclekorean:12910,kiyeokaparenkorean:12814,kiyeokcirclekorean:12896,kiyeokkorean:12593,kiyeokparenkorean:12800,kiyeoksioskorean:12595,kjecyrillic:1116,klinebelow:7733,klsquare:13208,kmcubedsquare:13222,kmonospace:65355,kmsquaredsquare:13218,kohiragana:12371,kohmsquare:13248,kokaithai:3585,kokatakana:12467,kokatakanahalfwidth:65402,kooposquare:13086,koppacyrillic:1153,koreanstandardsymbol:12927,koroniscmb:835,kparen:9382,kpasquare:13226,ksicyrillic:1135,ktsquare:13263,kturned:670,kuhiragana:12367,kukatakana:12463,kukatakanahalfwidth:65400,kvsquare:13240,kwsquare:13246,l:108,labengali:2482,lacute:314,ladeva:2354,lagujarati:2738,lagurmukhi:2610,lakkhangyaothai:3653,lamaleffinalarabic:65276,lamalefhamzaabovefinalarabic:65272,lamalefhamzaaboveisolatedarabic:65271,lamalefhamzabelowfinalarabic:65274,lamalefhamzabelowisolatedarabic:65273,lamalefisolatedarabic:65275,lamalefmaddaabovefinalarabic:65270,lamalefmaddaaboveisolatedarabic:65269,lamarabic:1604,lambda:955,lambdastroke:411,lamed:1500,lameddagesh:64316,lameddageshhebrew:64316,
+lamedhebrew:1500,lamfinalarabic:65246,lamhahinitialarabic:64714,laminitialarabic:65247,lamjeeminitialarabic:64713,lamkhahinitialarabic:64715,lamlamhehisolatedarabic:65010,lammedialarabic:65248,lammeemhahinitialarabic:64904,lammeeminitialarabic:64716,largecircle:9711,lbar:410,lbelt:620,lbopomofo:12556,lcaron:318,lcedilla:316,lcircle:9435,lcircumflexbelow:7741,lcommaaccent:316,ldot:320,ldotaccent:320,ldotbelow:7735,ldotbelowmacron:7737,leftangleabovecmb:794,lefttackbelowcmb:792,less:60,lessequal:8804,lessequalorgreater:8922,lessmonospace:65308,lessorequivalent:8818,lessorgreater:8822,lessoverequal:8806,lesssmall:65124,lezh:622,lfblock:9612,lhookretroflex:621,lira:8356,liwnarmenian:1388,lj:457,ljecyrillic:1113,ll:63168,lladeva:2355,llagujarati:2739,llinebelow:7739,llladeva:2356,llvocalicbengali:2529,llvocalicdeva:2401,llvocalicvowelsignbengali:2531,llvocalicvowelsigndeva:2403,lmiddletilde:619,lmonospace:65356,lmsquare:13264,lochulathai:3628,logicaland:8743,logicalnot:172,logicalnotreversed:8976,logicalor:8744,lolingthai:3621,longs:383,lowlinecenterline:65102,lowlinecmb:818,lowlinedashed:65101,lozenge:9674,lparen:9383,lslash:322,lsquare:8467,lsuperior:63214,ltshade:9617,luthai:3622,lvocalicbengali:2444,lvocalicdeva:2316,lvocalicvowelsignbengali:2530,lvocalicvowelsigndeva:2402,lxsquare:13267,m:109,mabengali:2478,macron:175,macronbelowcmb:817,macroncmb:772,macronlowmod:717,macronmonospace:65507,macute:7743,madeva:2350,magujarati:2734,magurmukhi:2606,mahapakhhebrew:1444,mahapakhlefthebrew:1444,mahiragana:12414,maichattawalowleftthai:63637,maichattawalowrightthai:63636,maichattawathai:3659,maichattawaupperleftthai:63635,maieklowleftthai:63628,maieklowrightthai:63627,maiekthai:3656,maiekupperleftthai:63626,maihanakatleftthai:63620,maihanakatthai:3633,maitaikhuleftthai:63625,maitaikhuthai:3655,maitholowleftthai:63631,maitholowrightthai:63630,maithothai:3657,maithoupperleftthai:63629,maitrilowleftthai:63634,maitrilowrightthai:63633,maitrithai:3658,maitriupperleftthai:63632,maiyamokthai:3654,makatakana:12510,makatakanahalfwidth:65423,male:9794,mansyonsquare:13127,maqafhebrew:1470,mars:9794,masoracirclehebrew:1455,masquare:13187,mbopomofo:12551,mbsquare:13268,mcircle:9436,mcubedsquare:13221,mdotaccent:7745,mdotbelow:7747,meemarabic:1605,meemfinalarabic:65250,meeminitialarabic:65251,meemmedialarabic:65252,meemmeeminitialarabic:64721,meemmeemisolatedarabic:64584,meetorusquare:13133,mehiragana:12417,meizierasquare:13182,mekatakana:12513,mekatakanahalfwidth:65426,mem:1502,memdagesh:64318,memdageshhebrew:64318,memhebrew:1502,menarmenian:1396,merkhahebrew:1445,merkhakefulahebrew:1446,merkhakefulalefthebrew:1446,merkhalefthebrew:1445,mhook:625,mhzsquare:13202,middledotkatakanahalfwidth:65381,middot:183,mieumacirclekorean:12914,mieumaparenkorean:12818,mieumcirclekorean:12900,mieumkorean:12609,mieumpansioskorean:12656,mieumparenkorean:12804,mieumpieupkorean:12654,mieumsioskorean:12655,mihiragana:12415,mikatakana:12511,mikatakanahalfwidth:65424,minus:8722,minusbelowcmb:800,minuscircle:8854,minusmod:727,minusplus:8723,minute:8242,miribaarusquare:13130,mirisquare:13129,mlonglegturned:624,mlsquare:13206,mmcubedsquare:13219,mmonospace:65357,mmsquaredsquare:13215,mohiragana:12418,mohmsquare:13249,mokatakana:12514,mokatakanahalfwidth:65427,molsquare:13270,momathai:3617,moverssquare:13223,moverssquaredsquare:13224,mparen:9384,mpasquare:13227,mssquare:13235,msuperior:63215,mturned:623,mu:181,mu1:181,muasquare:13186,muchgreater:8811,muchless:8810,mufsquare:13196,mugreek:956,mugsquare:13197,muhiragana:12416,mukatakana:12512,mukatakanahalfwidth:65425,mulsquare:13205,multiply:215,mumsquare:13211,munahhebrew:1443,munahlefthebrew:1443,musicalnote:9834,musicalnotedbl:9835,musicflatsign:9837,musicsharpsign:9839,mussquare:13234,muvsquare:13238,muwsquare:13244,mvmegasquare:13241,mvsquare:13239,mwmegasquare:13247,mwsquare:13245,n:110,nabengali:2472,nabla:8711,nacute:324,nadeva:2344,nagujarati:2728,nagurmukhi:2600,nahiragana:12394,nakatakana:12490,nakatakanahalfwidth:65413,napostrophe:329,nasquare:13185,nbopomofo:12555,nbspace:160,ncaron:328,ncedilla:326,ncircle:9437,ncircumflexbelow:7755,ncommaaccent:326,ndotaccent:7749,ndotbelow:7751,nehiragana:12397,nekatakana:12493,nekatakanahalfwidth:65416,newsheqelsign:8362,nfsquare:13195,ngabengali:2457,ngadeva:2329,ngagujarati:2713,ngagurmukhi:2585,ngonguthai:3591,nhiragana:12435,nhookleft:626,nhookretroflex:627,nieunacirclekorean:12911,nieunaparenkorean:12815,nieuncieuckorean:12597,nieuncirclekorean:12897,nieunhieuhkorean:12598,nieunkorean:12596,nieunpansioskorean:12648,nieunparenkorean:12801,nieunsioskorean:12647,nieuntikeutkorean:12646,nihiragana:12395,nikatakana:12491,nikatakanahalfwidth:65414,nikhahitleftthai:63641,nikhahitthai:3661,nine:57,ninearabic:1641,ninebengali:2543,ninecircle:9320,ninecircleinversesansserif:10130,ninedeva:2415,ninegujarati:2799,ninegurmukhi:2671,ninehackarabic:1641,ninehangzhou:12329,nineideographicparen:12840,nineinferior:8329,ninemonospace:65305,nineoldstyle:63289,nineparen:9340,nineperiod:9360,ninepersian:1785,nineroman:8568,ninesuperior:8313,nineteencircle:9330,nineteenparen:9350,nineteenperiod:9370,ninethai:3673,nj:460,njecyrillic:1114,nkatakana:12531,nkatakanahalfwidth:65437,nlegrightlong:414,nlinebelow:7753,nmonospace:65358,nmsquare:13210,nnabengali:2467,nnadeva:2339,nnagujarati:2723,nnagurmukhi:2595,nnnadeva:2345,nohiragana:12398,nokatakana:12494,nokatakanahalfwidth:65417,nonbreakingspace:160,nonenthai:3603,nonuthai:3609,noonarabic:1606,noonfinalarabic:65254,noonghunnaarabic:1722,noonghunnafinalarabic:64415,nooninitialarabic:65255,noonjeeminitialarabic:64722,noonjeemisolatedarabic:64587,noonmedialarabic:65256,noonmeeminitialarabic:64725,noonmeemisolatedarabic:64590,noonnoonfinalarabic:64653,notcontains:8716,notelement:8713,notelementof:8713,notequal:8800,notgreater:8815,notgreaternorequal:8817,notgreaternorless:8825,notidentical:8802,notless:8814,notlessnorequal:8816,notparallel:8742,notprecedes:8832,notsubset:8836,notsucceeds:8833,notsuperset:8837,nowarmenian:1398,nparen:9385,nssquare:13233,nsuperior:8319,ntilde:241,nu:957,nuhiragana:12396,nukatakana:12492,nukatakanahalfwidth:65415,nuktabengali:2492,nuktadeva:2364,nuktagujarati:2748,nuktagurmukhi:2620,numbersign:35,numbersignmonospace:65283,numbersignsmall:65119,numeralsigngreek:884,numeralsignlowergreek:885,numero:8470,nun:1504,nundagesh:64320,nundageshhebrew:64320,nunhebrew:1504,nvsquare:13237,nwsquare:13243,nyabengali:2462,nyadeva:2334,nyagujarati:2718,nyagurmukhi:2590,o:111,oacute:243,oangthai:3629,obarred:629,obarredcyrillic:1257,obarreddieresiscyrillic:1259,obengali:2451,obopomofo:12571,obreve:335,ocandradeva:2321,ocandragujarati:2705,ocandravowelsigndeva:2377,ocandravowelsigngujarati:2761,ocaron:466,ocircle:9438,ocircumflex:244,ocircumflexacute:7889,ocircumflexdotbelow:7897,ocircumflexgrave:7891,ocircumflexhookabove:7893,ocircumflextilde:7895,ocyrillic:1086,odblacute:337,odblgrave:525,odeva:2323,odieresis:246,odieresiscyrillic:1255,odotbelow:7885,oe:339,oekorean:12634,ogonek:731,ogonekcmb:808,ograve:242,ogujarati:2707,oharmenian:1413,ohiragana:12362,ohookabove:7887,ohorn:417,ohornacute:7899,ohorndotbelow:7907,ohorngrave:7901,ohornhookabove:7903,ohorntilde:7905,ohungarumlaut:337,oi:419,oinvertedbreve:527,okatakana:12458,okatakanahalfwidth:65397,okorean:12631,olehebrew:1451,omacron:333,omacronacute:7763,omacrongrave:7761,omdeva:2384,omega:969,omega1:982,omegacyrillic:1121,omegalatinclosed:631,omegaroundcyrillic:1147,omegatitlocyrillic:1149,omegatonos:974,omgujarati:2768,omicron:959,omicrontonos:972,omonospace:65359,one:49,onearabic:1633,onebengali:2535,onecircle:9312,onecircleinversesansserif:10122,onedeva:2407,onedotenleader:8228,oneeighth:8539,onefitted:63196,onegujarati:2791,onegurmukhi:2663,onehackarabic:1633,onehalf:189,onehangzhou:12321,oneideographicparen:12832,oneinferior:8321,onemonospace:65297,onenumeratorbengali:2548,oneoldstyle:63281,oneparen:9332,oneperiod:9352,onepersian:1777,onequarter:188,oneroman:8560,onesuperior:185,onethai:3665,onethird:8531,oogonek:491,oogonekmacron:493,oogurmukhi:2579,oomatragurmukhi:2635,oopen:596,oparen:9386,openbullet:9702,option:8997,ordfeminine:170,ordmasculine:186,orthogonal:8735,oshortdeva:2322,oshortvowelsigndeva:2378,oslash:248,oslashacute:511,osmallhiragana:12361,osmallkatakana:12457,osmallkatakanahalfwidth:65387,ostrokeacute:511,osuperior:63216,otcyrillic:1151,otilde:245,otildeacute:7757,otildedieresis:7759,oubopomofo:12577,overline:8254,overlinecenterline:65098,overlinecmb:773,overlinedashed:65097,overlinedblwavy:65100,overlinewavy:65099,overscore:175,ovowelsignbengali:2507,ovowelsigndeva:2379,ovowelsigngujarati:2763,p:112,paampssquare:13184,paasentosquare:13099,pabengali:2474,pacute:7765,padeva:2346,pagedown:8671,pageup:8670,pagujarati:2730,pagurmukhi:2602,pahiragana:12401,paiyannoithai:3631,pakatakana:12497,palatalizationcyrilliccmb:1156,palochkacyrillic:1216,pansioskorean:12671,paragraph:182,parallel:8741,parenleft:40,parenleftaltonearabic:64830,parenleftbt:63725,parenleftex:63724,parenleftinferior:8333,parenleftmonospace:65288,parenleftsmall:65113,parenleftsuperior:8317,parenlefttp:63723,parenleftvertical:65077,parenright:41,parenrightaltonearabic:64831,parenrightbt:63736,parenrightex:63735,parenrightinferior:8334,parenrightmonospace:65289,parenrightsmall:65114,parenrightsuperior:8318,parenrighttp:63734,parenrightvertical:65078,partialdiff:8706,paseqhebrew:1472,pashtahebrew:1433,pasquare:13225,patah:1463,patah11:1463,patah1d:1463,patah2a:1463,patahhebrew:1463,patahnarrowhebrew:1463,patahquarterhebrew:1463,patahwidehebrew:1463,pazerhebrew:1441,pbopomofo:12550,pcircle:9439,pdotaccent:7767,pe:1508,pecyrillic:1087,pedagesh:64324,pedageshhebrew:64324,peezisquare:13115,pefinaldageshhebrew:64323,peharabic:1662,peharmenian:1402,pehebrew:1508,pehfinalarabic:64343,pehinitialarabic:64344,pehiragana:12410,pehmedialarabic:64345,pekatakana:12506,pemiddlehookcyrillic:1191,perafehebrew:64334,percent:37,percentarabic:1642,percentmonospace:65285,percentsmall:65130,period:46,periodarmenian:1417,periodcentered:183,periodhalfwidth:65377,periodinferior:63207,periodmonospace:65294,periodsmall:65106,periodsuperior:63208,perispomenigreekcmb:834,perpendicular:8869,perthousand:8240,peseta:8359,pfsquare:13194,phabengali:2475,phadeva:2347,phagujarati:2731,phagurmukhi:2603,phi:966,phi1:981,phieuphacirclekorean:12922,phieuphaparenkorean:12826,phieuphcirclekorean:12908,phieuphkorean:12621,phieuphparenkorean:12812,philatin:632,phinthuthai:3642,phisymbolgreek:981,phook:421,phophanthai:3614,phophungthai:3612,phosamphaothai:3616,pi:960,pieupacirclekorean:12915,pieupaparenkorean:12819,pieupcieuckorean:12662,pieupcirclekorean:12901,pieupkiyeokkorean:12658,pieupkorean:12610,pieupparenkorean:12805,pieupsioskiyeokkorean:12660,pieupsioskorean:12612,pieupsiostikeutkorean:12661,pieupthieuthkorean:12663,pieuptikeutkorean:12659,pihiragana:12404,pikatakana:12500,pisymbolgreek:982,piwrarmenian:1411,plus:43,plusbelowcmb:799,pluscircle:8853,plusminus:177,plusmod:726,plusmonospace:65291,plussmall:65122,plussuperior:8314,pmonospace:65360,pmsquare:13272,pohiragana:12413,pointingindexdownwhite:9759,pointingindexleftwhite:9756,pointingindexrightwhite:9758,pointingindexupwhite:9757,pokatakana:12509,poplathai:3611,postalmark:12306,postalmarkface:12320,pparen:9387,precedes:8826,prescription:8478,primemod:697,primereversed:8245,product:8719,projective:8965,prolongedkana:12540,propellor:8984,propersubset:8834,propersuperset:8835,proportion:8759,proportional:8733,psi:968,psicyrillic:1137,psilipneumatacyrilliccmb:1158,pssquare:13232,puhiragana:12407,pukatakana:12503,pvsquare:13236,pwsquare:13242,q:113,qadeva:2392,qadmahebrew:1448,qafarabic:1602,qaffinalarabic:65238,qafinitialarabic:65239,qafmedialarabic:65240,qamats:1464,qamats10:1464,qamats1a:1464,qamats1c:1464,qamats27:1464,qamats29:1464,qamats33:1464,qamatsde:1464,qamatshebrew:1464,qamatsnarrowhebrew:1464,qamatsqatanhebrew:1464,qamatsqatannarrowhebrew:1464,qamatsqatanquarterhebrew:1464,qamatsqatanwidehebrew:1464,qamatsquarterhebrew:1464,qamatswidehebrew:1464,qarneyparahebrew:1439,qbopomofo:12561,qcircle:9440,qhook:672,qmonospace:65361,qof:1511,qofdagesh:64327,qofdageshhebrew:64327,qofhebrew:1511,qparen:9388,quarternote:9833,qubuts:1467,qubuts18:1467,qubuts25:1467,qubuts31:1467,qubutshebrew:1467,qubutsnarrowhebrew:1467,qubutsquarterhebrew:1467,qubutswidehebrew:1467,question:63,questionarabic:1567,questionarmenian:1374,questiondown:191,questiondownsmall:63423,questiongreek:894,questionmonospace:65311,questionsmall:63295,quotedbl:34,quotedblbase:8222,quotedblleft:8220,quotedblmonospace:65282,quotedblprime:12318,quotedblprimereversed:12317,quotedblright:8221,quoteleft:8216,quoteleftreversed:8219,quotereversed:8219,quoteright:8217,quoterightn:329,quotesinglbase:8218,quotesingle:39,quotesinglemonospace:65287,r:114,raarmenian:1404,rabengali:2480,racute:341,radeva:2352,radical:8730,radicalex:63717,radoverssquare:13230,radoverssquaredsquare:13231,radsquare:13229,rafe:1471,rafehebrew:1471,ragujarati:2736,ragurmukhi:2608,rahiragana:12425,rakatakana:12521,rakatakanahalfwidth:65431,ralowerdiagonalbengali:2545,ramiddlediagonalbengali:2544,ramshorn:612,ratio:8758,rbopomofo:12566,rcaron:345,rcedilla:343,rcircle:9441,rcommaaccent:343,rdblgrave:529,rdotaccent:7769,rdotbelow:7771,rdotbelowmacron:7773,referencemark:8251,reflexsubset:8838,reflexsuperset:8839,registered:174,registersans:63720,registerserif:63194,reharabic:1585,reharmenian:1408,rehfinalarabic:65198,rehiragana:12428,rekatakana:12524,rekatakanahalfwidth:65434,resh:1512,reshdageshhebrew:64328,reshhebrew:1512,reversedtilde:8765,reviahebrew:1431,reviamugrashhebrew:1431,revlogicalnot:8976,rfishhook:638,rfishhookreversed:639,rhabengali:2525,rhadeva:2397,rho:961,rhook:637,rhookturned:635,rhookturnedsuperior:693,rhosymbolgreek:1009,rhotichookmod:734,rieulacirclekorean:12913,rieulaparenkorean:12817,rieulcirclekorean:12899,rieulhieuhkorean:12608,rieulkiyeokkorean:12602,rieulkiyeoksioskorean:12649,rieulkorean:12601,rieulmieumkorean:12603,rieulpansioskorean:12652,rieulparenkorean:12803,rieulphieuphkorean:12607,rieulpieupkorean:12604,rieulpieupsioskorean:12651,rieulsioskorean:12605,rieulthieuthkorean:12606,rieultikeutkorean:12650,rieulyeorinhieuhkorean:12653,rightangle:8735,righttackbelowcmb:793,righttriangle:8895,rihiragana:12426,rikatakana:12522,rikatakanahalfwidth:65432,ring:730,ringbelowcmb:805,ringcmb:778,ringhalfleft:703,ringhalfleftarmenian:1369,ringhalfleftbelowcmb:796,ringhalfleftcentered:723,ringhalfright:702,ringhalfrightbelowcmb:825,ringhalfrightcentered:722,rinvertedbreve:531,rittorusquare:13137,rlinebelow:7775,rlongleg:636,rlonglegturned:634,rmonospace:65362,rohiragana:12429,rokatakana:12525,rokatakanahalfwidth:65435,roruathai:3619,rparen:9389,rrabengali:2524,rradeva:2353,rragurmukhi:2652,rreharabic:1681,rrehfinalarabic:64397,rrvocalicbengali:2528,rrvocalicdeva:2400,rrvocalicgujarati:2784,rrvocalicvowelsignbengali:2500,rrvocalicvowelsigndeva:2372,rrvocalicvowelsigngujarati:2756,rsuperior:63217,rtblock:9616,rturned:633,rturnedsuperior:692,ruhiragana:12427,rukatakana:12523,rukatakanahalfwidth:65433,rupeemarkbengali:2546,rupeesignbengali:2547,rupiah:63197,ruthai:3620,rvocalicbengali:2443,rvocalicdeva:2315,rvocalicgujarati:2699,rvocalicvowelsignbengali:2499,rvocalicvowelsigndeva:2371,rvocalicvowelsigngujarati:2755,s:115,sabengali:2488,sacute:347,sacutedotaccent:7781,sadarabic:1589,sadeva:2360,sadfinalarabic:65210,sadinitialarabic:65211,sadmedialarabic:65212,sagujarati:2744,sagurmukhi:2616,sahiragana:12373,sakatakana:12469,sakatakanahalfwidth:65403,sallallahoualayhewasallamarabic:65018,samekh:1505,samekhdagesh:64321,samekhdageshhebrew:64321,samekhhebrew:1505,saraaathai:3634,saraaethai:3649,saraaimaimalaithai:3652,saraaimaimuanthai:3651,saraamthai:3635,saraathai:3632,saraethai:3648,saraiileftthai:63622,saraiithai:3637,saraileftthai:63621,saraithai:3636,saraothai:3650,saraueeleftthai:63624,saraueethai:3639,saraueleftthai:63623,sarauethai:3638,sarauthai:3640,sarauuthai:3641,sbopomofo:12569,scaron:353,scarondotaccent:7783,scedilla:351,schwa:601,schwacyrillic:1241,schwadieresiscyrillic:1243,schwahook:602,scircle:9442,scircumflex:349,scommaaccent:537,sdotaccent:7777,sdotbelow:7779,sdotbelowdotaccent:7785,seagullbelowcmb:828,second:8243,secondtonechinese:714,section:167,seenarabic:1587,seenfinalarabic:65202,seeninitialarabic:65203,seenmedialarabic:65204,segol:1462,segol13:1462,segol1f:1462,segol2c:1462,segolhebrew:1462,segolnarrowhebrew:1462,segolquarterhebrew:1462,segoltahebrew:1426,segolwidehebrew:1462,seharmenian:1405,sehiragana:12379,sekatakana:12475,sekatakanahalfwidth:65406,semicolon:59,semicolonarabic:1563,semicolonmonospace:65307,semicolonsmall:65108,semivoicedmarkkana:12444,semivoicedmarkkanahalfwidth:65439,sentisquare:13090,sentosquare:13091,seven:55,sevenarabic:1639,sevenbengali:2541,sevencircle:9318,sevencircleinversesansserif:10128,sevendeva:2413,seveneighths:8542,sevengujarati:2797,sevengurmukhi:2669,sevenhackarabic:1639,sevenhangzhou:12327,sevenideographicparen:12838,seveninferior:8327,sevenmonospace:65303,sevenoldstyle:63287,sevenparen:9338,sevenperiod:9358,sevenpersian:1783,sevenroman:8566,sevensuperior:8311,seventeencircle:9328,seventeenparen:9348,seventeenperiod:9368,seventhai:3671,sfthyphen:173,shaarmenian:1399,shabengali:2486,shacyrillic:1096,shaddaarabic:1617,shaddadammaarabic:64609,shaddadammatanarabic:64606,shaddafathaarabic:64608,shaddakasraarabic:64610,shaddakasratanarabic:64607,shade:9618,shadedark:9619,shadelight:9617,shademedium:9618,shadeva:2358,shagujarati:2742,shagurmukhi:2614,shalshelethebrew:1427,shbopomofo:12565,shchacyrillic:1097,sheenarabic:1588,sheenfinalarabic:65206,sheeninitialarabic:65207,sheenmedialarabic:65208,sheicoptic:995,sheqel:8362,sheqelhebrew:8362,sheva:1456,sheva115:1456,sheva15:1456,sheva22:1456,sheva2e:1456,shevahebrew:1456,shevanarrowhebrew:1456,shevaquarterhebrew:1456,shevawidehebrew:1456,shhacyrillic:1211,shimacoptic:1005,shin:1513,shindagesh:64329,shindageshhebrew:64329,shindageshshindot:64300,shindageshshindothebrew:64300,shindageshsindot:64301,shindageshsindothebrew:64301,shindothebrew:1473,shinhebrew:1513,shinshindot:64298,shinshindothebrew:64298,shinsindot:64299,shinsindothebrew:64299,shook:642,sigma:963,sigma1:962,sigmafinal:962,sigmalunatesymbolgreek:1010,sihiragana:12375,sikatakana:12471,sikatakanahalfwidth:65404,siluqhebrew:1469,siluqlefthebrew:1469,similar:8764,sindothebrew:1474,siosacirclekorean:12916,siosaparenkorean:12820,sioscieuckorean:12670,sioscirclekorean:12902,sioskiyeokkorean:12666,sioskorean:12613,siosnieunkorean:12667,siosparenkorean:12806,siospieupkorean:12669,siostikeutkorean:12668,six:54,sixarabic:1638,sixbengali:2540,sixcircle:9317,sixcircleinversesansserif:10127,sixdeva:2412,sixgujarati:2796,sixgurmukhi:2668,sixhackarabic:1638,sixhangzhou:12326,sixideographicparen:12837,sixinferior:8326,sixmonospace:65302,sixoldstyle:63286,sixparen:9337,sixperiod:9357,sixpersian:1782,sixroman:8565,sixsuperior:8310,sixteencircle:9327,sixteencurrencydenominatorbengali:2553,sixteenparen:9347,sixteenperiod:9367,sixthai:3670,slash:47,slashmonospace:65295,slong:383,slongdotaccent:7835,smileface:9786,smonospace:65363,sofpasuqhebrew:1475,softhyphen:173,softsigncyrillic:1100,sohiragana:12381,sokatakana:12477,sokatakanahalfwidth:65407,soliduslongoverlaycmb:824,solidusshortoverlaycmb:823,sorusithai:3625,sosalathai:3624,sosothai:3595,sosuathai:3626,space:32,spacehackarabic:32,spade:9824,spadesuitblack:9824,spadesuitwhite:9828,sparen:9390,squarebelowcmb:827,squarecc:13252,squarecm:13213,squarediagonalcrosshatchfill:9641,squarehorizontalfill:9636,squarekg:13199,squarekm:13214,squarekmcapital:13262,squareln:13265,squarelog:13266,squaremg:13198,squaremil:13269,squaremm:13212,squaremsquared:13217,squareorthogonalcrosshatchfill:9638,squareupperlefttolowerrightfill:9639,squareupperrighttolowerleftfill:9640,squareverticalfill:9637,squarewhitewithsmallblack:9635,srsquare:13275,ssabengali:2487,ssadeva:2359,ssagujarati:2743,ssangcieuckorean:12617,ssanghieuhkorean:12677,ssangieungkorean:12672,ssangkiyeokkorean:12594,ssangnieunkorean:12645,ssangpieupkorean:12611,ssangsioskorean:12614,ssangtikeutkorean:12600,ssuperior:63218,sterling:163,sterlingmonospace:65505,strokelongoverlaycmb:822,strokeshortoverlaycmb:821,subset:8834,subsetnotequal:8842,subsetorequal:8838,succeeds:8827,suchthat:8715,suhiragana:12377,sukatakana:12473,sukatakanahalfwidth:65405,sukunarabic:1618,summation:8721,sun:9788,superset:8835,supersetnotequal:8843,supersetorequal:8839,svsquare:13276,syouwaerasquare:13180,t:116,tabengali:2468,tackdown:8868,tackleft:8867,tadeva:2340,tagujarati:2724,tagurmukhi:2596,taharabic:1591,tahfinalarabic:65218,tahinitialarabic:65219,tahiragana:12383,tahmedialarabic:65220,taisyouerasquare:13181,takatakana:12479,takatakanahalfwidth:65408,tatweelarabic:1600,tau:964,tav:1514,tavdages:64330,tavdagesh:64330,tavdageshhebrew:64330,tavhebrew:1514,tbar:359,tbopomofo:12554,tcaron:357,tccurl:680,tcedilla:355,tcheharabic:1670,tchehfinalarabic:64379,tchehinitialarabic:64380,tchehmedialarabic:64381,tcircle:9443,tcircumflexbelow:7793,tcommaaccent:355,tdieresis:7831,tdotaccent:7787,tdotbelow:7789,tecyrillic:1090,tedescendercyrillic:1197,teharabic:1578,tehfinalarabic:65174,tehhahinitialarabic:64674,tehhahisolatedarabic:64524,tehinitialarabic:65175,tehiragana:12390,tehjeeminitialarabic:64673,tehjeemisolatedarabic:64523,tehmarbutaarabic:1577,tehmarbutafinalarabic:65172,tehmedialarabic:65176,tehmeeminitialarabic:64676,tehmeemisolatedarabic:64526,tehnoonfinalarabic:64627,tekatakana:12486,tekatakanahalfwidth:65411,telephone:8481,telephoneblack:9742,telishagedolahebrew:1440,telishaqetanahebrew:1449,tencircle:9321,tenideographicparen:12841,tenparen:9341,tenperiod:9361,tenroman:8569,tesh:679,tet:1496,tetdagesh:64312,tetdageshhebrew:64312,tethebrew:1496,tetsecyrillic:1205,tevirhebrew:1435,tevirlefthebrew:1435,thabengali:2469,thadeva:2341,thagujarati:2725,thagurmukhi:2597,thalarabic:1584,thalfinalarabic:65196,thanthakhatlowleftthai:63640,thanthakhatlowrightthai:63639,thanthakhatthai:3660,thanthakhatupperleftthai:63638,theharabic:1579,thehfinalarabic:65178,thehinitialarabic:65179,thehmedialarabic:65180,thereexists:8707,therefore:8756,theta:952,theta1:977,thetasymbolgreek:977,thieuthacirclekorean:12921,thieuthaparenkorean:12825,thieuthcirclekorean:12907,thieuthkorean:12620,thieuthparenkorean:12811,thirteencircle:9324,thirteenparen:9344,thirteenperiod:9364,thonangmonthothai:3601,thook:429,thophuthaothai:3602,thorn:254,thothahanthai:3607,thothanthai:3600,thothongthai:3608,thothungthai:3606,thousandcyrillic:1154,thousandsseparatorarabic:1644,thousandsseparatorpersian:1644,three:51,threearabic:1635,threebengali:2537,threecircle:9314,threecircleinversesansserif:10124,threedeva:2409,threeeighths:8540,threegujarati:2793,threegurmukhi:2665,threehackarabic:1635,threehangzhou:12323,threeideographicparen:12834,threeinferior:8323,threemonospace:65299,threenumeratorbengali:2550,threeoldstyle:63283,threeparen:9334,threeperiod:9354,threepersian:1779,threequarters:190,threequartersemdash:63198,threeroman:8562,threesuperior:179,threethai:3667,thzsquare:13204,tihiragana:12385,tikatakana:12481,tikatakanahalfwidth:65409,tikeutacirclekorean:12912,tikeutaparenkorean:12816,tikeutcirclekorean:12898,tikeutkorean:12599,tikeutparenkorean:12802,tilde:732,tildebelowcmb:816,tildecmb:771,tildecomb:771,tildedoublecmb:864,tildeoperator:8764,tildeoverlaycmb:820,tildeverticalcmb:830,timescircle:8855,tipehahebrew:1430,tipehalefthebrew:1430,tippigurmukhi:2672,titlocyrilliccmb:1155,tiwnarmenian:1407,tlinebelow:7791,tmonospace:65364,toarmenian:1385,tohiragana:12392,tokatakana:12488,tokatakanahalfwidth:65412,tonebarextrahighmod:741,tonebarextralowmod:745,tonebarhighmod:742,tonebarlowmod:744,tonebarmidmod:743,tonefive:445,tonesix:389,tonetwo:424,tonos:900,tonsquare:13095,topatakthai:3599,tortoiseshellbracketleft:12308,tortoiseshellbracketleftsmall:65117,tortoiseshellbracketleftvertical:65081,tortoiseshellbracketright:12309,tortoiseshellbracketrightsmall:65118,tortoiseshellbracketrightvertical:65082,totaothai:3605,tpalatalhook:427,tparen:9391,trademark:8482,trademarksans:63722,trademarkserif:63195,tretroflexhook:648,triagdn:9660,triaglf:9668,triagrt:9658,triagup:9650,ts:678,tsadi:1510,tsadidagesh:64326,tsadidageshhebrew:64326,tsadihebrew:1510,tsecyrillic:1094,tsere:1461,tsere12:1461,tsere1e:1461,tsere2b:1461,tserehebrew:1461,tserenarrowhebrew:1461,tserequarterhebrew:1461,tserewidehebrew:1461,tshecyrillic:1115,tsuperior:63219,ttabengali:2463,ttadeva:2335,ttagujarati:2719,ttagurmukhi:2591,tteharabic:1657,ttehfinalarabic:64359,ttehinitialarabic:64360,ttehmedialarabic:64361,tthabengali:2464,tthadeva:2336,tthagujarati:2720,tthagurmukhi:2592,tturned:647,tuhiragana:12388,tukatakana:12484,tukatakanahalfwidth:65410,tusmallhiragana:12387,tusmallkatakana:12483,tusmallkatakanahalfwidth:65391,twelvecircle:9323,twelveparen:9343,twelveperiod:9363,twelveroman:8571,twentycircle:9331,twentyhangzhou:21316,twentyparen:9351,twentyperiod:9371,two:50,twoarabic:1634,twobengali:2536,twocircle:9313,twocircleinversesansserif:10123,twodeva:2408,twodotenleader:8229,twodotleader:8229,twodotleadervertical:65072,twogujarati:2792,twogurmukhi:2664,twohackarabic:1634,twohangzhou:12322,twoideographicparen:12833,twoinferior:8322,twomonospace:65298,twonumeratorbengali:2549,twooldstyle:63282,twoparen:9333,twoperiod:9353,twopersian:1778,tworoman:8561,twostroke:443,twosuperior:178,twothai:3666,twothirds:8532,u:117,uacute:250,ubar:649,ubengali:2441,ubopomofo:12584,ubreve:365,ucaron:468,ucircle:9444,ucircumflex:251,ucircumflexbelow:7799,ucyrillic:1091,udattadeva:2385,udblacute:369,udblgrave:533,udeva:2313,udieresis:252,udieresisacute:472,udieresisbelow:7795,udieresiscaron:474,udieresiscyrillic:1265,udieresisgrave:476,udieresismacron:470,udotbelow:7909,ugrave:249,ugujarati:2697,ugurmukhi:2569,uhiragana:12358,uhookabove:7911,uhorn:432,uhornacute:7913,uhorndotbelow:7921,uhorngrave:7915,uhornhookabove:7917,uhorntilde:7919,uhungarumlaut:369,uhungarumlautcyrillic:1267,uinvertedbreve:535,ukatakana:12454,ukatakanahalfwidth:65395,ukcyrillic:1145,ukorean:12636,umacron:363,umacroncyrillic:1263,umacrondieresis:7803,umatragurmukhi:2625,umonospace:65365,underscore:95,underscoredbl:8215,underscoremonospace:65343,underscorevertical:65075,underscorewavy:65103,union:8746,universal:8704,uogonek:371,uparen:9392,upblock:9600,upperdothebrew:1476,upsilon:965,upsilondieresis:971,upsilondieresistonos:944,upsilonlatin:650,upsilontonos:973,uptackbelowcmb:797,uptackmod:724,uragurmukhi:2675,uring:367,ushortcyrillic:1118,usmallhiragana:12357,usmallkatakana:12453,usmallkatakanahalfwidth:65385,ustraightcyrillic:1199,ustraightstrokecyrillic:1201,utilde:361,utildeacute:7801,utildebelow:7797,uubengali:2442,uudeva:2314,uugujarati:2698,uugurmukhi:2570,uumatragurmukhi:2626,uuvowelsignbengali:2498,uuvowelsigndeva:2370,uuvowelsigngujarati:2754,uvowelsignbengali:2497,uvowelsigndeva:2369,uvowelsigngujarati:2753,v:118,vadeva:2357,vagujarati:2741,vagurmukhi:2613,vakatakana:12535,vav:1493,vavdagesh:64309,vavdagesh65:64309,vavdageshhebrew:64309,vavhebrew:1493,vavholam:64331,vavholamhebrew:64331,vavvavhebrew:1520,vavyodhebrew:1521,vcircle:9445,vdotbelow:7807,vecyrillic:1074,veharabic:1700,vehfinalarabic:64363,vehinitialarabic:64364,vehmedialarabic:64365,vekatakana:12537,venus:9792,verticalbar:124,verticallineabovecmb:781,verticallinebelowcmb:809,verticallinelowmod:716,verticallinemod:712,vewarmenian:1406,vhook:651,vikatakana:12536,viramabengali:2509,viramadeva:2381,viramagujarati:2765,visargabengali:2435,visargadeva:2307,visargagujarati:2691,vmonospace:65366,voarmenian:1400,voicediterationhiragana:12446,voicediterationkatakana:12542,voicedmarkkana:12443,voicedmarkkanahalfwidth:65438,vokatakana:12538,vparen:9393,vtilde:7805,vturned:652,vuhiragana:12436,vukatakana:12532,w:119,wacute:7811,waekorean:12633,wahiragana:12431,wakatakana:12527,wakatakanahalfwidth:65436,wakorean:12632,wasmallhiragana:12430,wasmallkatakana:12526,wattosquare:13143,wavedash:12316,wavyunderscorevertical:65076,wawarabic:1608,wawfinalarabic:65262,wawhamzaabovearabic:1572,wawhamzaabovefinalarabic:65158,wbsquare:13277,wcircle:9446,wcircumflex:373,wdieresis:7813,wdotaccent:7815,wdotbelow:7817,wehiragana:12433,weierstrass:8472,wekatakana:12529,wekorean:12638,weokorean:12637,wgrave:7809,whitebullet:9702,whitecircle:9675,whitecircleinverse:9689,whitecornerbracketleft:12302,whitecornerbracketleftvertical:65091,whitecornerbracketright:12303,whitecornerbracketrightvertical:65092,whitediamond:9671,whitediamondcontainingblacksmalldiamond:9672,whitedownpointingsmalltriangle:9663,whitedownpointingtriangle:9661,whiteleftpointingsmalltriangle:9667,whiteleftpointingtriangle:9665,whitelenticularbracketleft:12310,whitelenticularbracketright:12311,whiterightpointingsmalltriangle:9657,whiterightpointingtriangle:9655,whitesmallsquare:9643,whitesmilingface:9786,whitesquare:9633,whitestar:9734,whitetelephone:9743,whitetortoiseshellbracketleft:12312,whitetortoiseshellbracketright:12313,whiteuppointingsmalltriangle:9653,whiteuppointingtriangle:9651,wihiragana:12432,wikatakana:12528,wikorean:12639,wmonospace:65367,wohiragana:12434,wokatakana:12530,wokatakanahalfwidth:65382,won:8361,wonmonospace:65510,wowaenthai:3623,wparen:9394,wring:7832,wsuperior:695,wturned:653,wynn:447,x:120,xabovecmb:829,xbopomofo:12562,xcircle:9447,xdieresis:7821,xdotaccent:7819,xeharmenian:1389,xi:958,xmonospace:65368,xparen:9395,xsuperior:739,y:121,yaadosquare:13134,yabengali:2479,yacute:253,yadeva:2351,yaekorean:12626,yagujarati:2735,yagurmukhi:2607,yahiragana:12420,yakatakana:12516,yakatakanahalfwidth:65428,yakorean:12625,yamakkanthai:3662,yasmallhiragana:12419,yasmallkatakana:12515,yasmallkatakanahalfwidth:65388,yatcyrillic:1123,ycircle:9448,ycircumflex:375,ydieresis:255,ydotaccent:7823,ydotbelow:7925,yeharabic:1610,yehbarreearabic:1746,yehbarreefinalarabic:64431,yehfinalarabic:65266,yehhamzaabovearabic:1574,yehhamzaabovefinalarabic:65162,yehhamzaaboveinitialarabic:65163,yehhamzaabovemedialarabic:65164,yehinitialarabic:65267,yehmedialarabic:65268,yehmeeminitialarabic:64733,yehmeemisolatedarabic:64600,yehnoonfinalarabic:64660,yehthreedotsbelowarabic:1745,yekorean:12630,yen:165,yenmonospace:65509,yeokorean:12629,yeorinhieuhkorean:12678,yerahbenyomohebrew:1450,yerahbenyomolefthebrew:1450,yericyrillic:1099,yerudieresiscyrillic:1273,yesieungkorean:12673,yesieungpansioskorean:12675,yesieungsioskorean:12674,yetivhebrew:1434,ygrave:7923,yhook:436,yhookabove:7927,yiarmenian:1397,yicyrillic:1111,yikorean:12642,yinyang:9775,yiwnarmenian:1410,ymonospace:65369,yod:1497,yoddagesh:64313,yoddageshhebrew:64313,yodhebrew:1497,yodyodhebrew:1522,yodyodpatahhebrew:64287,yohiragana:12424,yoikorean:12681,yokatakana:12520,yokatakanahalfwidth:65430,yokorean:12635,yosmallhiragana:12423,yosmallkatakana:12519,yosmallkatakanahalfwidth:65390,yotgreek:1011,yoyaekorean:12680,yoyakorean:12679,yoyakthai:3618,yoyingthai:3597,yparen:9396,ypogegrammeni:890,ypogegrammenigreekcmb:837,yr:422,yring:7833,ysuperior:696,ytilde:7929,yturned:654,yuhiragana:12422,yuikorean:12684,yukatakana:12518,yukatakanahalfwidth:65429,yukorean:12640,yusbigcyrillic:1131,yusbigiotifiedcyrillic:1133,yuslittlecyrillic:1127,yuslittleiotifiedcyrillic:1129,yusmallhiragana:12421,yusmallkatakana:12517,yusmallkatakanahalfwidth:65389,yuyekorean:12683,yuyeokorean:12682,yyabengali:2527,yyadeva:2399,z:122,zaarmenian:1382,zacute:378,zadeva:2395,zagurmukhi:2651,zaharabic:1592,zahfinalarabic:65222,zahinitialarabic:65223,zahiragana:12374,zahmedialarabic:65224,zainarabic:1586,zainfinalarabic:65200,zakatakana:12470,zaqefgadolhebrew:1429,zaqefqatanhebrew:1428,zarqahebrew:1432,zayin:1494,zayindagesh:64310,zayindageshhebrew:64310,zayinhebrew:1494,zbopomofo:12567,zcaron:382,zcircle:9449,zcircumflex:7825,zcurl:657,zdot:380,zdotaccent:380,zdotbelow:7827,zecyrillic:1079,zedescendercyrillic:1177,zedieresiscyrillic:1247,zehiragana:12380,zekatakana:12476,zero:48,zeroarabic:1632,zerobengali:2534,zerodeva:2406,zerogujarati:2790,zerogurmukhi:2662,zerohackarabic:1632,zeroinferior:8320,zeromonospace:65296,zerooldstyle:63280,
+var c=k(b,a,!1);c.language=b,c.relevance>e.relevance&&(e=c),c.relevance>d.relevance&&(e=d,d=c)}}),e.language&&(d.second_best=e),d}function m(a){return v.tabReplace&&(a=a.replace(/^((<[^>]+>|\t)+)/gm,function(a,b){return b.replace(/\t/g,v.tabReplace)})),v.useBR&&(a=a.replace(/\n/g,"<br>")),a}function n(a,b,c){var d=b?x[b]:c,e=[a.trim()];return a.match(/\bhljs\b/)||e.push("hljs"),-1===a.indexOf(d)&&e.push(d),e.join(" ").trim()}function o(a){var b=f(a);if(!e(b)){var c;v.useBR?(c=document.createElementNS("http://www.w3.org/1999/xhtml","div"),c.innerHTML=a.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n")):c=a;var d=c.textContent,g=b?k(b,d,!0):l(d),j=h(c);if(j.length){var o=document.createElementNS("http://www.w3.org/1999/xhtml","div");o.innerHTML=g.value,g.value=i(j,h(o),d)}g.value=m(g.value),a.innerHTML=g.value,a.className=n(a.className,b,g.language),a.result={language:g.language,re:g.relevance},g.second_best&&(a.second_best={language:g.second_best.language,re:g.second_best.relevance})}}function p(a){v=g(v,a)}function q(){if(!q.called){q.called=!0;var a=document.querySelectorAll("pre code");Array.prototype.forEach.call(a,o)}}function r(){addEventListener("DOMContentLoaded",q,!1),addEventListener("load",q,!1)}function s(b,c){var d=w[b]=c(a);d.aliases&&d.aliases.forEach(function(a){x[a]=b})}function t(){return Object.keys(w)}function u(a){return a=(a||"").toLowerCase(),w[a]||w[x[a]]}var v={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},w={},x={};return a.highlight=k,a.highlightAuto=l,a.fixMarkup=m,a.highlightBlock=o,a.configure=p,a.initHighlighting=q,a.initHighlightingOnLoad=r,a.registerLanguage=s,a.listLanguages=t,a.getLanguage=u,a.inherit=g,a.IDENT_RE="[a-zA-Z]\\w*",a.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",a.NUMBER_RE="\\b\\d+(\\.\\d+)?",a.C_NUMBER_RE="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",a.BINARY_NUMBER_RE="\\b(0b[01]+)",a.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",a.BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0},a.APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[a.BACKSLASH_ESCAPE]},a.QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[a.BACKSLASH_ESCAPE]},a.PHRASAL_WORDS_MODE={begin:/\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/},a.COMMENT=function(b,c,d){var e=a.inherit({className:"comment",begin:b,end:c,contains:[]},d||{});return e.contains.push(a.PHRASAL_WORDS_MODE),e.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),e},a.C_LINE_COMMENT_MODE=a.COMMENT("//","$"),a.C_BLOCK_COMMENT_MODE=a.COMMENT("/\\*","\\*/"),a.HASH_COMMENT_MODE=a.COMMENT("#","$"),a.NUMBER_MODE={className:"number",begin:a.NUMBER_RE,relevance:0},a.C_NUMBER_MODE={className:"number",begin:a.C_NUMBER_RE,relevance:0},a.BINARY_NUMBER_MODE={className:"number",begin:a.BINARY_NUMBER_RE,relevance:0},a.CSS_NUMBER_MODE={className:"number",begin:a.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},a.REGEXP_MODE={className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[a.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[a.BACKSLASH_ESCAPE]}]},a.TITLE_MODE={className:"title",begin:a.IDENT_RE,relevance:0},a.UNDERSCORE_TITLE_MODE={className:"title",begin:a.UNDERSCORE_IDENT_RE,relevance:0},a.registerLanguage("1c",function(a){var b="[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*",c="возврат дата для если и или иначе иначеесли исключение конецесли конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл число экспорт",d="ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить стрколичествострок стрполучитьстроку  стрчисловхождений сформироватьпозициюдокумента счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты установитьтана установитьтапо фиксшаблон формат цел шаблон",e={className:"dquote",begin:'""'},f={className:"string",begin:'"',end:'"|$',contains:[e]},g={className:"string",begin:"\\|",end:'"|$',contains:[e]};return{case_insensitive:!0,lexemes:b,keywords:{keyword:c,built_in:d},contains:[a.C_LINE_COMMENT_MODE,a.NUMBER_MODE,f,g,{className:"function",begin:"(процедура|функция)",end:"$",lexemes:b,keywords:"процедура функция",contains:[a.inherit(a.TITLE_MODE,{begin:b}),{className:"tail",endsWithParent:!0,contains:[{className:"params",begin:"\\(",end:"\\)",lexemes:b,keywords:"знач",contains:[f,g]},{className:"export",begin:"экспорт",endsWithParent:!0,lexemes:b,keywords:"экспорт",contains:[a.C_LINE_COMMENT_MODE]}]},a.C_LINE_COMMENT_MODE]},{className:"preprocessor",begin:"#",end:"$"},{className:"date",begin:"'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})'"}]}}),a.registerLanguage("accesslog",function(a){return{contains:[{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+\\b",relevance:0},{className:"string",begin:'"(GET|POST|HEAD|PUT|DELETE|CONNECT|OPTIONS|PATCH|TRACE)',end:'"',keywords:"GET POST HEAD PUT DELETE CONNECT OPTIONS PATCH TRACE",illegal:"\\n",relevance:10},{className:"string",begin:/\[/,end:/\]/,illegal:"\\n"},{className:"string",begin:'"',end:'"',illegal:"\\n"}]}}),a.registerLanguage("actionscript",function(a){var b="[a-zA-Z_$][a-zA-Z0-9_$]*",c="([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)",d={className:"rest_arg",begin:"[.]{3}",end:b,relevance:10};return{aliases:["as"],keywords:{keyword:"as break case catch class const continue default delete do dynamic each else extends final finally for function get if implements import in include instanceof interface internal is namespace native new override package private protected public return set static super switch this throw try typeof use var void while with",literal:"true false null undefined"},contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.C_NUMBER_MODE,{className:"package",beginKeywords:"package",end:"{",contains:[a.TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,contains:[{beginKeywords:"extends implements"},a.TITLE_MODE]},{className:"preprocessor",beginKeywords:"import include",end:";"},{className:"function",beginKeywords:"function",end:"[{;]",excludeEnd:!0,illegal:"\\S",contains:[a.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,d]},{className:"type",begin:":",end:c,relevance:10}]}],illegal:/#/}}),a.registerLanguage("apache",function(a){var b={className:"number",begin:"[\\$%]\\d+"};return{aliases:["apacheconf"],case_insensitive:!0,contains:[a.HASH_COMMENT_MODE,{className:"tag",begin:"</?",end:">"},{className:"keyword",begin:/\w+/,relevance:0,keywords:{common:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{end:/$/,relevance:0,keywords:{literal:"on off all"},contains:[{className:"sqbracket",begin:"\\s\\[",end:"\\]$"},{className:"cbracket",begin:"[\\$%]\\{",end:"\\}",contains:["self",b]},b,a.QUOTE_STRING_MODE]}}],illegal:/\S/}}),a.registerLanguage("applescript",function(a){var b=a.inherit(a.QUOTE_STRING_MODE,{illegal:""}),c={className:"params",begin:"\\(",end:"\\)",contains:["self",a.C_NUMBER_MODE,b]},d=a.COMMENT("--","$"),e=a.COMMENT("\\(\\*","\\*\\)",{contains:["self",d]}),f=[d,e,a.HASH_COMMENT_MODE];return{aliases:["osascript"],keywords:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without",constant:"AppleScript false linefeed return pi quote result space tab true",type:"alias application boolean class constant date file integer list number real record string text",command:"activate beep count delay launch log offset read round run say summarize write",property:"character characters contents day frontmost id item length month name paragraph paragraphs rest reverse running time version weekday word words year"},contains:[b,a.C_NUMBER_MODE,{className:"type",begin:"\\bPOSIX file\\b"},{className:"command",begin:"\\b(clipboard info|the clipboard|info for|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|current date|do shell script|get volume settings|random number|set volume|system attribute|system info|time to GMT|(load|run|store) script|scripting components|ASCII (character|number)|localized string|choose (application|color|file|file name|folder|from list|remote application|URL)|display (alert|dialog))\\b|^\\s*return\\b"},{className:"constant",begin:"\\b(text item delimiters|current application|missing value)\\b"},{className:"keyword",begin:"\\b(apart from|aside from|instead of|out of|greater than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|less) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|after)|a (ref|reference))\\b"},{className:"property",begin:"\\b(POSIX path|(date|time) string|quoted form)\\b"},{className:"function_start",beginKeywords:"on",illegal:"[${=;\\n]",contains:[a.UNDERSCORE_TITLE_MODE,c]}].concat(f),illegal:"//|->|=>|\\[\\["}}),a.registerLanguage("armasm",function(a){return{case_insensitive:!0,aliases:["arm"],lexemes:"\\.?"+a.IDENT_RE,keywords:{literal:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 ",preprocessor:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"{PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @ "},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?",end:"\\s"},a.COMMENT("[;@]","$",{relevance:0}),a.C_BLOCK_COMMENT_MODE,a.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"label",variants:[{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"[=#]\\w+"}],relevance:0}]}}),a.registerLanguage("xml",function(a){var b="[A-Za-z0-9\\._:-]+",c={begin:/<\?(php)?(?!\w)/,end:/\?>/,subLanguage:"php"},d={endsWithParent:!0,illegal:/</,relevance:0,contains:[c,{className:"attribute",begin:b,relevance:0},{begin:"=",relevance:0,contains:[{className:"value",contains:[c],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/},{begin:/[^\s\/>]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xsl","plist"],case_insensitive:!0,contains:[{className:"doctype",begin:"<!DOCTYPE",end:">",relevance:10,contains:[{begin:"\\[",end:"\\]"}]},a.COMMENT("<!--","-->",{relevance:10}),{className:"cdata",begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},{className:"tag",begin:"<style(?=\\s|>|$)",end:">",keywords:{title:"style"},contains:[d],starts:{end:"</style>",returnEnd:!0,subLanguage:"css"}},{className:"tag",begin:"<script(?=\\s|>|$)",end:">",keywords:{title:"script"},contains:[d],starts:{end:"</script>",returnEnd:!0,subLanguage:["actionscript","javascript","handlebars"]}},c,{className:"pi",begin:/<\?\w+/,end:/\?>/,relevance:10},{className:"tag",begin:"</?",end:"/?>",contains:[{className:"title",begin:/[^ \/><\n\t]+/,relevance:0},d]}]}}),a.registerLanguage("asciidoc",function(a){return{aliases:["adoc"],contains:[a.COMMENT("^/{4,}\\n","\\n/{4,}$",{relevance:10}),a.COMMENT("^//","$",{relevance:0}),{className:"title",begin:"^\\.\\w.*$"},{begin:"^[=\\*]{4,}\\n",end:"\\n^[=\\*]{4,}$",relevance:10},{className:"header",begin:"^(={1,5}) .+?( \\1)?$",relevance:10},{className:"header",begin:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$",relevance:10},{className:"attribute",begin:"^:.+?:",end:"\\s",excludeEnd:!0,relevance:10},{className:"attribute",begin:"^\\[.+?\\]$",relevance:0},{className:"blockquote",begin:"^_{4,}\\n",end:"\\n_{4,}$",relevance:10},{className:"code",begin:"^[\\-\\.]{4,}\\n",end:"\\n[\\-\\.]{4,}$",relevance:10},{begin:"^\\+{4,}\\n",end:"\\n\\+{4,}$",contains:[{begin:"<",end:">",subLanguage:"xml",relevance:0}],relevance:10},{className:"bullet",begin:"^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+"},{className:"label",begin:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",relevance:10},{className:"strong",begin:"\\B\\*(?![\\*\\s])",end:"(\\n{2}|\\*)",contains:[{begin:"\\\\*\\w",relevance:0}]},{className:"emphasis",begin:"\\B'(?!['\\s])",end:"(\\n{2}|')",contains:[{begin:"\\\\'\\w",relevance:0}],relevance:0},{className:"emphasis",begin:"_(?![_\\s])",end:"(\\n{2}|_)",relevance:0},{className:"smartquote",variants:[{begin:"``.+?''"},{begin:"`.+?'"}]},{className:"code",begin:"(`.+?`|\\+.+?\\+)",relevance:0},{className:"code",begin:"^[ \\t]",end:"$",relevance:0},{className:"horizontal_rule",begin:"^'{3,}[ \\t]*$",relevance:10},{begin:"(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]",returnBegin:!0,contains:[{begin:"(link|image:?):",relevance:0},{className:"link_url",begin:"\\w",end:"[^\\[]+",relevance:0},{className:"link_label",begin:"\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0,relevance:0}],relevance:10}]}}),a.registerLanguage("aspectj",function(a){var b="false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else extends implements break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws privileged aspectOf adviceexecution proceed cflowbelow cflow initialization preinitialization staticinitialization withincode target within execution getWithinTypeName handler thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents warning error soft precedence thisAspectInstance",c="get set args call";return{keywords:b,illegal:/<\/|#/,contains:[a.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"aspect",beginKeywords:"aspect",end:/[{;=]/,excludeEnd:!0,illegal:/[:;"\[\]]/,contains:[{beginKeywords:"extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton"},a.UNDERSCORE_TITLE_MODE,{begin:/\([^\)]*/,end:/[)]+/,keywords:b+" "+c,excludeEnd:!1}]},{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,relevance:0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},{beginKeywords:"pointcut after before around throwing returning",end:/[)]/,excludeEnd:!1,illegal:/["\[\]]/,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,contains:[a.UNDERSCORE_TITLE_MODE]}]},{begin:/[:]/,returnBegin:!0,end:/[{;]/,relevance:0,excludeEnd:!1,keywords:b,illegal:/["\[\]]/,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",keywords:b+" "+c},a.QUOTE_STRING_MODE]},{beginKeywords:"new throw",relevance:0},{className:"function",begin:/\w+ +\w+(\.)?\w+\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,returnBegin:!0,end:/[{;=]/,keywords:b,excludeEnd:!0,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[a.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,relevance:0,keywords:b,contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,a.C_BLOCK_COMMENT_MODE]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},a.C_NUMBER_MODE,{className:"annotation",begin:"@[A-Za-z]+"}]}}),a.registerLanguage("autohotkey",function(a){var b={className:"escape",begin:"`[\\s\\S]"},c=a.COMMENT(";","$",{relevance:0}),d=[{className:"built_in",begin:"A_[a-zA-Z0-9]+"},{className:"built_in",beginKeywords:"ComSpec Clipboard ClipboardAll ErrorLevel"}];return{case_insensitive:!0,keywords:{keyword:"Break Continue Else Gosub If Loop Return While",literal:"A true false NOT AND OR"},contains:d.concat([b,a.inherit(a.QUOTE_STRING_MODE,{contains:[b]}),c,{className:"number",begin:a.NUMBER_RE,relevance:0},{className:"var_expand",begin:"%",end:"%",illegal:"\\n",contains:[b]},{className:"label",contains:[b],variants:[{begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{begin:",\\s*,",relevance:10}])}}),a.registerLanguage("autoit",function(a){var b="ByRef Case Const ContinueCase ContinueLoop Default Dim Do Else ElseIf EndFunc EndIf EndSelect EndSwitch EndWith Enum Exit ExitLoop For Func Global If In Local Next ReDim Return Select Static Step Switch Then To Until Volatile WEnd While With",c="True False And Null Not Or",d="Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Opt Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown TCPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend UDPShutdown UDPStartup VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive WinWaitClose WinWaitNotActive Array1DToHistogram ArrayAdd ArrayBinarySearch ArrayColDelete ArrayColInsert ArrayCombinations ArrayConcatenate ArrayDelete ArrayDisplay ArrayExtract ArrayFindAll ArrayInsert ArrayMax ArrayMaxIndex ArrayMin ArrayMinIndex ArrayPermute ArrayPop ArrayPush ArrayReverse ArraySearch ArrayShuffle ArraySort ArraySwap ArrayToClip ArrayToString ArrayTranspose ArrayTrim ArrayUnique Assert ChooseColor ChooseFont ClipBoard_ChangeChain ClipBoard_Close ClipBoard_CountFormats ClipBoard_Empty ClipBoard_EnumFormats ClipBoard_FormatStr ClipBoard_GetData ClipBoard_GetDataEx ClipBoard_GetFormatName ClipBoard_GetOpenWindow ClipBoard_GetOwner ClipBoard_GetPriorityFormat ClipBoard_GetSequenceNumber ClipBoard_GetViewer ClipBoard_IsFormatAvailable ClipBoard_Open ClipBoard_RegisterFormat ClipBoard_SetData ClipBoard_SetDataEx ClipBoard_SetViewer ClipPutFile ColorConvertHSLtoRGB ColorConvertRGBtoHSL ColorGetBlue ColorGetCOLORREF ColorGetGreen ColorGetRed ColorGetRGB ColorSetCOLORREF ColorSetRGB Crypt_DecryptData Crypt_DecryptFile Crypt_DeriveKey Crypt_DestroyKey Crypt_EncryptData Crypt_EncryptFile Crypt_GenRandom Crypt_HashData Crypt_HashFile Crypt_Shutdown Crypt_Startup DateAdd DateDayOfWeek DateDaysInMonth DateDiff DateIsLeapYear DateIsValid DateTimeFormat DateTimeSplit DateToDayOfWeek DateToDayOfWeekISO DateToDayValue DateToMonth Date_Time_CompareFileTime Date_Time_DOSDateTimeToArray Date_Time_DOSDateTimeToFileTime Date_Time_DOSDateTimeToStr Date_Time_DOSDateToArray Date_Time_DOSDateToStr Date_Time_DOSTimeToArray Date_Time_DOSTimeToStr Date_Time_EncodeFileTime Date_Time_EncodeSystemTime Date_Time_FileTimeToArray Date_Time_FileTimeToDOSDateTime Date_Time_FileTimeToLocalFileTime Date_Time_FileTimeToStr Date_Time_FileTimeToSystemTime Date_Time_GetFileTime Date_Time_GetLocalTime Date_Time_GetSystemTime Date_Time_GetSystemTimeAdjustment Date_Time_GetSystemTimeAsFileTime Date_Time_GetSystemTimes Date_Time_GetTickCount Date_Time_GetTimeZoneInformation Date_Time_LocalFileTimeToFileTime Date_Time_SetFileTime Date_Time_SetLocalTime Date_Time_SetSystemTime Date_Time_SetSystemTimeAdjustment Date_Time_SetTimeZoneInformation Date_Time_SystemTimeToArray Date_Time_SystemTimeToDateStr Date_Time_SystemTimeToDateTimeStr Date_Time_SystemTimeToFileTime Date_Time_SystemTimeToTimeStr Date_Time_SystemTimeToTzSpecificLocalTime Date_Time_TzSpecificLocalTimeToSystemTime DayValueToDate DebugBugReportEnv DebugCOMError DebugOut DebugReport DebugReportEx DebugReportVar DebugSetup Degree EventLog__Backup EventLog__Clear EventLog__Close EventLog__Count EventLog__DeregisterSource EventLog__Full EventLog__Notify EventLog__Oldest EventLog__Open EventLog__OpenBackup EventLog__Read EventLog__RegisterSource EventLog__Report Excel_BookAttach Excel_BookClose Excel_BookList Excel_BookNew Excel_BookOpen Excel_BookOpenText Excel_BookSave Excel_BookSaveAs Excel_Close Excel_ColumnToLetter Excel_ColumnToNumber Excel_ConvertFormula Excel_Export Excel_FilterGet Excel_FilterSet Excel_Open Excel_PictureAdd Excel_Print Excel_RangeCopyPaste Excel_RangeDelete Excel_RangeFind Excel_RangeInsert Excel_RangeLinkAddRemove Excel_RangeRead Excel_RangeReplace Excel_RangeSort Excel_RangeValidate Excel_RangeWrite Excel_SheetAdd Excel_SheetCopyMove Excel_SheetDelete Excel_SheetList FileCountLines FileCreate FileListToArray FileListToArrayRec FilePrint FileReadToArray FileWriteFromArray FileWriteLog FileWriteToLine FTP_Close FTP_Command FTP_Connect FTP_DecodeInternetStatus FTP_DirCreate FTP_DirDelete FTP_DirGetCurrent FTP_DirPutContents FTP_DirSetCurrent FTP_FileClose FTP_FileDelete FTP_FileGet FTP_FileGetSize FTP_FileOpen FTP_FilePut FTP_FileRead FTP_FileRename FTP_FileTimeLoHiToStr FTP_FindFileClose FTP_FindFileFirst FTP_FindFileNext FTP_GetLastResponseInfo FTP_ListToArray FTP_ListToArray2D FTP_ListToArrayEx FTP_Open FTP_ProgressDownload FTP_ProgressUpload FTP_SetStatusCallback GDIPlus_ArrowCapCreate GDIPlus_ArrowCapDispose GDIPlus_ArrowCapGetFillState GDIPlus_ArrowCapGetHeight GDIPlus_ArrowCapGetMiddleInset GDIPlus_ArrowCapGetWidth GDIPlus_ArrowCapSetFillState GDIPlus_ArrowCapSetHeight GDIPlus_ArrowCapSetMiddleInset GDIPlus_ArrowCapSetWidth GDIPlus_BitmapApplyEffect GDIPlus_BitmapApplyEffectEx GDIPlus_BitmapCloneArea GDIPlus_BitmapConvertFormat GDIPlus_BitmapCreateApplyEffect GDIPlus_BitmapCreateApplyEffectEx GDIPlus_BitmapCreateDIBFromBitmap GDIPlus_BitmapCreateFromFile GDIPlus_BitmapCreateFromGraphics GDIPlus_BitmapCreateFromHBITMAP GDIPlus_BitmapCreateFromHICON GDIPlus_BitmapCreateFromHICON32 GDIPlus_BitmapCreateFromMemory GDIPlus_BitmapCreateFromResource GDIPlus_BitmapCreateFromScan0 GDIPlus_BitmapCreateFromStream GDIPlus_BitmapCreateHBITMAPFromBitmap GDIPlus_BitmapDispose GDIPlus_BitmapGetHistogram GDIPlus_BitmapGetHistogramEx GDIPlus_BitmapGetHistogramSize GDIPlus_BitmapGetPixel GDIPlus_BitmapLockBits GDIPlus_BitmapSetPixel GDIPlus_BitmapUnlockBits GDIPlus_BrushClone GDIPlus_BrushCreateSolid GDIPlus_BrushDispose GDIPlus_BrushGetSolidColor GDIPlus_BrushGetType GDIPlus_BrushSetSolidColor GDIPlus_ColorMatrixCreate GDIPlus_ColorMatrixCreateGrayScale GDIPlus_ColorMatrixCreateNegative GDIPlus_ColorMatrixCreateSaturation GDIPlus_ColorMatrixCreateScale GDIPlus_ColorMatrixCreateTranslate GDIPlus_CustomLineCapClone GDIPlus_CustomLineCapCreate GDIPlus_CustomLineCapDispose GDIPlus_CustomLineCapGetStrokeCaps GDIPlus_CustomLineCapSetStrokeCaps GDIPlus_Decoders GDIPlus_DecodersGetCount GDIPlus_DecodersGetSize GDIPlus_DrawImageFX GDIPlus_DrawImageFXEx GDIPlus_DrawImagePoints GDIPlus_EffectCreate GDIPlus_EffectCreateBlur GDIPlus_EffectCreateBrightnessContrast GDIPlus_EffectCreateColorBalance GDIPlus_EffectCreateColorCurve GDIPlus_EffectCreateColorLUT GDIPlus_EffectCreateColorMatrix GDIPlus_EffectCreateHueSaturationLightness GDIPlus_EffectCreateLevels GDIPlus_EffectCreateRedEyeCorrection GDIPlus_EffectCreateSharpen GDIPlus_EffectCreateTint GDIPlus_EffectDispose GDIPlus_EffectGetParameters GDIPlus_EffectSetParameters GDIPlus_Encoders GDIPlus_EncodersGetCLSID GDIPlus_EncodersGetCount GDIPlus_EncodersGetParamList GDIPlus_EncodersGetParamListSize GDIPlus_EncodersGetSize GDIPlus_FontCreate GDIPlus_FontDispose GDIPlus_FontFamilyCreate GDIPlus_FontFamilyCreateFromCollection GDIPlus_FontFamilyDispose GDIPlus_FontFamilyGetCellAscent GDIPlus_FontFamilyGetCellDescent GDIPlus_FontFamilyGetEmHeight GDIPlus_FontFamilyGetLineSpacing GDIPlus_FontGetHeight GDIPlus_FontPrivateAddFont GDIPlus_FontPrivateAddMemoryFont GDIPlus_FontPrivateCollectionDispose GDIPlus_FontPrivateCreateCollection GDIPlus_GraphicsClear GDIPlus_GraphicsCreateFromHDC GDIPlus_GraphicsCreateFromHWND GDIPlus_GraphicsDispose GDIPlus_GraphicsDrawArc GDIPlus_GraphicsDrawBezier GDIPlus_GraphicsDrawClosedCurve GDIPlus_GraphicsDrawClosedCurve2 GDIPlus_GraphicsDrawCurve GDIPlus_GraphicsDrawCurve2 GDIPlus_GraphicsDrawEllipse GDIPlus_GraphicsDrawImage GDIPlus_GraphicsDrawImagePointsRect GDIPlus_GraphicsDrawImageRect GDIPlus_GraphicsDrawImageRectRect GDIPlus_GraphicsDrawLine GDIPlus_GraphicsDrawPath GDIPlus_GraphicsDrawPie GDIPlus_GraphicsDrawPolygon GDIPlus_GraphicsDrawRect GDIPlus_GraphicsDrawString GDIPlus_GraphicsDrawStringEx GDIPlus_GraphicsFillClosedCurve GDIPlus_GraphicsFillClosedCurve2 GDIPlus_GraphicsFillEllipse GDIPlus_GraphicsFillPath GDIPlus_GraphicsFillPie GDIPlus_GraphicsFillPolygon GDIPlus_GraphicsFillRect GDIPlus_GraphicsFillRegion GDIPlus_GraphicsGetCompositingMode GDIPlus_GraphicsGetCompositingQuality GDIPlus_GraphicsGetDC GDIPlus_GraphicsGetInterpolationMode GDIPlus_GraphicsGetSmoothingMode GDIPlus_GraphicsGetTransform GDIPlus_GraphicsMeasureCharacterRanges GDIPlus_GraphicsMeasureString GDIPlus_GraphicsReleaseDC GDIPlus_GraphicsResetClip GDIPlus_GraphicsResetTransform GDIPlus_GraphicsRestore GDIPlus_GraphicsRotateTransform GDIPlus_GraphicsSave GDIPlus_GraphicsScaleTransform GDIPlus_GraphicsSetClipPath GDIPlus_GraphicsSetClipRect GDIPlus_GraphicsSetClipRegion GDIPlus_GraphicsSetCompositingMode GDIPlus_GraphicsSetCompositingQuality GDIPlus_GraphicsSetInterpolationMode GDIPlus_GraphicsSetPixelOffsetMode GDIPlus_GraphicsSetSmoothingMode GDIPlus_GraphicsSetTextRenderingHint GDIPlus_GraphicsSetTransform GDIPlus_GraphicsTransformPoints GDIPlus_GraphicsTranslateTransform GDIPlus_HatchBrushCreate GDIPlus_HICONCreateFromBitmap GDIPlus_ImageAttributesCreate GDIPlus_ImageAttributesDispose GDIPlus_ImageAttributesSetColorKeys GDIPlus_ImageAttributesSetColorMatrix GDIPlus_ImageDispose GDIPlus_ImageGetDimension GDIPlus_ImageGetFlags GDIPlus_ImageGetGraphicsContext GDIPlus_ImageGetHeight GDIPlus_ImageGetHorizontalResolution GDIPlus_ImageGetPixelFormat GDIPlus_ImageGetRawFormat GDIPlus_ImageGetThumbnail GDIPlus_ImageGetType GDIPlus_ImageGetVerticalResolution GDIPlus_ImageGetWidth GDIPlus_ImageLoadFromFile GDIPlus_ImageLoadFromStream GDIPlus_ImageResize GDIPlus_ImageRotateFlip GDIPlus_ImageSaveToFile GDIPlus_ImageSaveToFileEx GDIPlus_ImageSaveToStream GDIPlus_ImageScale GDIPlus_LineBrushCreate GDIPlus_LineBrushCreateFromRect GDIPlus_LineBrushCreateFromRectWithAngle GDIPlus_LineBrushGetColors GDIPlus_LineBrushGetRect GDIPlus_LineBrushMultiplyTransform GDIPlus_LineBrushResetTransform GDIPlus_LineBrushSetBlend GDIPlus_LineBrushSetColors GDIPlus_LineBrushSetGammaCorrection GDIPlus_LineBrushSetLinearBlend GDIPlus_LineBrushSetPresetBlend GDIPlus_LineBrushSetSigmaBlend GDIPlus_LineBrushSetTransform GDIPlus_MatrixClone GDIPlus_MatrixCreate GDIPlus_MatrixDispose GDIPlus_MatrixGetElements GDIPlus_MatrixInvert GDIPlus_MatrixMultiply GDIPlus_MatrixRotate GDIPlus_MatrixScale GDIPlus_MatrixSetElements GDIPlus_MatrixShear GDIPlus_MatrixTransformPoints GDIPlus_MatrixTranslate GDIPlus_PaletteInitialize GDIPlus_ParamAdd GDIPlus_ParamInit GDIPlus_ParamSize GDIPlus_PathAddArc GDIPlus_PathAddBezier GDIPlus_PathAddClosedCurve GDIPlus_PathAddClosedCurve2 GDIPlus_PathAddCurve GDIPlus_PathAddCurve2 GDIPlus_PathAddCurve3 GDIPlus_PathAddEllipse GDIPlus_PathAddLine GDIPlus_PathAddLine2 GDIPlus_PathAddPath GDIPlus_PathAddPie GDIPlus_PathAddPolygon GDIPlus_PathAddRectangle GDIPlus_PathAddString GDIPlus_PathBrushCreate GDIPlus_PathBrushCreateFromPath GDIPlus_PathBrushGetCenterPoint GDIPlus_PathBrushGetFocusScales GDIPlus_PathBrushGetPointCount GDIPlus_PathBrushGetRect GDIPlus_PathBrushGetWrapMode GDIPlus_PathBrushMultiplyTransform GDIPlus_PathBrushResetTransform GDIPlus_PathBrushSetBlend GDIPlus_PathBrushSetCenterColor GDIPlus_PathBrushSetCenterPoint GDIPlus_PathBrushSetFocusScales GDIPlus_PathBrushSetGammaCorrection GDIPlus_PathBrushSetLinearBlend GDIPlus_PathBrushSetPresetBlend GDIPlus_PathBrushSetSigmaBlend GDIPlus_PathBrushSetSurroundColor GDIPlus_PathBrushSetSurroundColorsWithCount GDIPlus_PathBrushSetTransform GDIPlus_PathBrushSetWrapMode GDIPlus_PathClone GDIPlus_PathCloseFigure GDIPlus_PathCreate GDIPlus_PathCreate2 GDIPlus_PathDispose GDIPlus_PathFlatten GDIPlus_PathGetData GDIPlus_PathGetFillMode GDIPlus_PathGetLastPoint GDIPlus_PathGetPointCount GDIPlus_PathGetPoints GDIPlus_PathGetWorldBounds GDIPlus_PathIsOutlineVisiblePoint GDIPlus_PathIsVisiblePoint GDIPlus_PathIterCreate GDIPlus_PathIterDispose GDIPlus_PathIterGetSubpathCount GDIPlus_PathIterNextMarkerPath GDIPlus_PathIterNextSubpathPath GDIPlus_PathIterRewind GDIPlus_PathReset GDIPlus_PathReverse GDIPlus_PathSetFillMode GDIPlus_PathSetMarker GDIPlus_PathStartFigure GDIPlus_PathTransform GDIPlus_PathWarp GDIPlus_PathWiden GDIPlus_PathWindingModeOutline GDIPlus_PenCreate GDIPlus_PenCreate2 GDIPlus_PenDispose GDIPlus_PenGetAlignment GDIPlus_PenGetColor GDIPlus_PenGetCustomEndCap GDIPlus_PenGetDashCap GDIPlus_PenGetDashStyle GDIPlus_PenGetEndCap GDIPlus_PenGetMiterLimit GDIPlus_PenGetWidth GDIPlus_PenSetAlignment GDIPlus_PenSetColor GDIPlus_PenSetCustomEndCap GDIPlus_PenSetDashCap GDIPlus_PenSetDashStyle GDIPlus_PenSetEndCap GDIPlus_PenSetLineCap GDIPlus_PenSetLineJoin GDIPlus_PenSetMiterLimit GDIPlus_PenSetStartCap GDIPlus_PenSetWidth GDIPlus_RectFCreate GDIPlus_RegionClone GDIPlus_RegionCombinePath GDIPlus_RegionCombineRect GDIPlus_RegionCombineRegion GDIPlus_RegionCreate GDIPlus_RegionCreateFromPath GDIPlus_RegionCreateFromRect GDIPlus_RegionDispose GDIPlus_RegionGetBounds GDIPlus_RegionGetHRgn GDIPlus_RegionTransform GDIPlus_RegionTranslate GDIPlus_Shutdown GDIPlus_Startup GDIPlus_StringFormatCreate GDIPlus_StringFormatDispose GDIPlus_StringFormatGetMeasurableCharacterRangeCount GDIPlus_StringFormatSetAlign GDIPlus_StringFormatSetLineAlign GDIPlus_StringFormatSetMeasurableCharacterRanges GDIPlus_TextureCreate GDIPlus_TextureCreate2 GDIPlus_TextureCreateIA GetIP GUICtrlAVI_Close GUICtrlAVI_Create GUICtrlAVI_Destroy GUICtrlAVI_IsPlaying GUICtrlAVI_Open GUICtrlAVI_OpenEx GUICtrlAVI_Play GUICtrlAVI_Seek GUICtrlAVI_Show GUICtrlAVI_Stop GUICtrlButton_Click GUICtrlButton_Create GUICtrlButton_Destroy GUICtrlButton_Enable GUICtrlButton_GetCheck GUICtrlButton_GetFocus GUICtrlButton_GetIdealSize GUICtrlButton_GetImage GUICtrlButton_GetImageList GUICtrlButton_GetNote GUICtrlButton_GetNoteLength GUICtrlButton_GetSplitInfo GUICtrlButton_GetState GUICtrlButton_GetText GUICtrlButton_GetTextMargin GUICtrlButton_SetCheck GUICtrlButton_SetDontClick GUICtrlButton_SetFocus GUICtrlButton_SetImage GUICtrlButton_SetImageList GUICtrlButton_SetNote GUICtrlButton_SetShield GUICtrlButton_SetSize GUICtrlButton_SetSplitInfo GUICtrlButton_SetState GUICtrlButton_SetStyle GUICtrlButton_SetText GUICtrlButton_SetTextMargin GUICtrlButton_Show GUICtrlComboBoxEx_AddDir GUICtrlComboBoxEx_AddString GUICtrlComboBoxEx_BeginUpdate GUICtrlComboBoxEx_Create GUICtrlComboBoxEx_CreateSolidBitMap GUICtrlComboBoxEx_DeleteString GUICtrlComboBoxEx_Destroy GUICtrlComboBoxEx_EndUpdate GUICtrlComboBoxEx_FindStringExact GUICtrlComboBoxEx_GetComboBoxInfo GUICtrlComboBoxEx_GetComboControl GUICtrlComboBoxEx_GetCount GUICtrlComboBoxEx_GetCurSel GUICtrlComboBoxEx_GetDroppedControlRect GUICtrlComboBoxEx_GetDroppedControlRectEx GUICtrlComboBoxEx_GetDroppedState GUICtrlComboBoxEx_GetDroppedWidth GUICtrlComboBoxEx_GetEditControl GUICtrlComboBoxEx_GetEditSel GUICtrlComboBoxEx_GetEditText GUICtrlComboBoxEx_GetExtendedStyle GUICtrlComboBoxEx_GetExtendedUI GUICtrlComboBoxEx_GetImageList GUICtrlComboBoxEx_GetItem GUICtrlComboBoxEx_GetItemEx GUICtrlComboBoxEx_GetItemHeight GUICtrlComboBoxEx_GetItemImage GUICtrlComboBoxEx_GetItemIndent GUICtrlComboBoxEx_GetItemOverlayImage GUICtrlComboBoxEx_GetItemParam GUICtrlComboBoxEx_GetItemSelectedImage GUICtrlComboBoxEx_GetItemText GUICtrlComboBoxEx_GetItemTextLen GUICtrlComboBoxEx_GetList GUICtrlComboBoxEx_GetListArray GUICtrlComboBoxEx_GetLocale GUICtrlComboBoxEx_GetLocaleCountry GUICtrlComboBoxEx_GetLocaleLang GUICtrlComboBoxEx_GetLocalePrimLang GUICtrlComboBoxEx_GetLocaleSubLang GUICtrlComboBoxEx_GetMinVisible GUICtrlComboBoxEx_GetTopIndex GUICtrlComboBoxEx_GetUnicode GUICtrlComboBoxEx_InitStorage GUICtrlComboBoxEx_InsertString GUICtrlComboBoxEx_LimitText GUICtrlComboBoxEx_ReplaceEditSel GUICtrlComboBoxEx_ResetContent GUICtrlComboBoxEx_SetCurSel GUICtrlComboBoxEx_SetDroppedWidth GUICtrlComboBoxEx_SetEditSel GUICtrlComboBoxEx_SetEditText GUICtrlComboBoxEx_SetExtendedStyle GUICtrlComboBoxEx_SetExtendedUI GUICtrlComboBoxEx_SetImageList GUICtrlComboBoxEx_SetItem GUICtrlComboBoxEx_SetItemEx GUICtrlComboBoxEx_SetItemHeight GUICtrlComboBoxEx_SetItemImage GUICtrlComboBoxEx_SetItemIndent GUICtrlComboBoxEx_SetItemOverlayImage GUICtrlComboBoxEx_SetItemParam GUICtrlComboBoxEx_SetItemSelectedImage GUICtrlComboBoxEx_SetMinVisible GUICtrlComboBoxEx_SetTopIndex GUICtrlComboBoxEx_SetUnicode GUICtrlComboBoxEx_ShowDropDown GUICtrlComboBox_AddDir GUICtrlComboBox_AddString GUICtrlComboBox_AutoComplete GUICtrlComboBox_BeginUpdate GUICtrlComboBox_Create GUICtrlComboBox_DeleteString GUICtrlComboBox_Destroy GUICtrlComboBox_EndUpdate GUICtrlComboBox_FindString GUICtrlComboBox_FindStringExact GUICtrlComboBox_GetComboBoxInfo GUICtrlComboBox_GetCount GUICtrlComboBox_GetCueBanner GUICtrlComboBox_GetCurSel GUICtrlComboBox_GetDroppedControlRect GUICtrlComboBox_GetDroppedControlRectEx GUICtrlComboBox_GetDroppedState GUICtrlComboBox_GetDroppedWidth GUICtrlComboBox_GetEditSel GUICtrlComboBox_GetEditText GUICtrlComboBox_GetExtendedUI GUICtrlComboBox_GetHorizontalExtent GUICtrlComboBox_GetItemHeight GUICtrlComboBox_GetLBText GUICtrlComboBox_GetLBTextLen GUICtrlComboBox_GetList GUICtrlComboBox_GetListArray GUICtrlComboBox_GetLocale GUICtrlComboBox_GetLocaleCountry GUICtrlComboBox_GetLocaleLang GUICtrlComboBox_GetLocalePrimLang GUICtrlComboBox_GetLocaleSubLang GUICtrlComboBox_GetMinVisible GUICtrlComboBox_GetTopIndex GUICtrlComboBox_InitStorage GUICtrlComboBox_InsertString GUICtrlComboBox_LimitText GUICtrlComboBox_ReplaceEditSel GUICtrlComboBox_ResetContent GUICtrlComboBox_SelectString GUICtrlComboBox_SetCueBanner GUICtrlComboBox_SetCurSel GUICtrlComboBox_SetDroppedWidth GUICtrlComboBox_SetEditSel GUICtrlComboBox_SetEditText GUICtrlComboBox_SetExtendedUI GUICtrlComboBox_SetHorizontalExtent GUICtrlComboBox_SetItemHeight GUICtrlComboBox_SetMinVisible GUICtrlComboBox_SetTopIndex GUICtrlComboBox_ShowDropDown GUICtrlDTP_Create GUICtrlDTP_Destroy GUICtrlDTP_GetMCColor GUICtrlDTP_GetMCFont GUICtrlDTP_GetMonthCal GUICtrlDTP_GetRange GUICtrlDTP_GetRangeEx GUICtrlDTP_GetSystemTime GUICtrlDTP_GetSystemTimeEx GUICtrlDTP_SetFormat GUICtrlDTP_SetMCColor GUICtrlDTP_SetMCFont GUICtrlDTP_SetRange GUICtrlDTP_SetRangeEx GUICtrlDTP_SetSystemTime GUICtrlDTP_SetSystemTimeEx GUICtrlEdit_AppendText GUICtrlEdit_BeginUpdate GUICtrlEdit_CanUndo GUICtrlEdit_CharFromPos GUICtrlEdit_Create GUICtrlEdit_Destroy GUICtrlEdit_EmptyUndoBuffer GUICtrlEdit_EndUpdate GUICtrlEdit_Find GUICtrlEdit_FmtLines GUICtrlEdit_GetCueBanner GUICtrlEdit_GetFirstVisibleLine GUICtrlEdit_GetLimitText GUICtrlEdit_GetLine GUICtrlEdit_GetLineCount GUICtrlEdit_GetMargins GUICtrlEdit_GetModify GUICtrlEdit_GetPasswordChar GUICtrlEdit_GetRECT GUICtrlEdit_GetRECTEx GUICtrlEdit_GetSel GUICtrlEdit_GetText GUICtrlEdit_GetTextLen GUICtrlEdit_HideBalloonTip GUICtrlEdit_InsertText GUICtrlEdit_LineFromChar GUICtrlEdit_LineIndex GUICtrlEdit_LineLength GUICtrlEdit_LineScroll GUICtrlEdit_PosFromChar GUICtrlEdit_ReplaceSel GUICtrlEdit_Scroll GUICtrlEdit_SetCueBanner GUICtrlEdit_SetLimitText GUICtrlEdit_SetMargins GUICtrlEdit_SetModify GUICtrlEdit_SetPasswordChar GUICtrlEdit_SetReadOnly GUICtrlEdit_SetRECT GUICtrlEdit_SetRECTEx GUICtrlEdit_SetRECTNP GUICtrlEdit_SetRectNPEx GUICtrlEdit_SetSel GUICtrlEdit_SetTabStops GUICtrlEdit_SetText GUICtrlEdit_ShowBalloonTip GUICtrlEdit_Undo GUICtrlHeader_AddItem GUICtrlHeader_ClearFilter GUICtrlHeader_ClearFilterAll GUICtrlHeader_Create GUICtrlHeader_CreateDragImage GUICtrlHeader_DeleteItem GUICtrlHeader_Destroy GUICtrlHeader_EditFilter GUICtrlHeader_GetBitmapMargin GUICtrlHeader_GetImageList GUICtrlHeader_GetItem GUICtrlHeader_GetItemAlign GUICtrlHeader_GetItemBitmap GUICtrlHeader_GetItemCount GUICtrlHeader_GetItemDisplay GUICtrlHeader_GetItemFlags GUICtrlHeader_GetItemFormat GUICtrlHeader_GetItemImage GUICtrlHeader_GetItemOrder GUICtrlHeader_GetItemParam GUICtrlHeader_GetItemRect GUICtrlHeader_GetItemRectEx GUICtrlHeader_GetItemText GUICtrlHeader_GetItemWidth GUICtrlHeader_GetOrderArray GUICtrlHeader_GetUnicodeFormat GUICtrlHeader_HitTest GUICtrlHeader_InsertItem GUICtrlHeader_Layout GUICtrlHeader_OrderToIndex GUICtrlHeader_SetBitmapMargin GUICtrlHeader_SetFilterChangeTimeout GUICtrlHeader_SetHotDivider GUICtrlHeader_SetImageList GUICtrlHeader_SetItem GUICtrlHeader_SetItemAlign GUICtrlHeader_SetItemBitmap GUICtrlHeader_SetItemDisplay GUICtrlHeader_SetItemFlags GUICtrlHeader_SetItemFormat GUICtrlHeader_SetItemImage GUICtrlHeader_SetItemOrder GUICtrlHeader_SetItemParam GUICtrlHeader_SetItemText GUICtrlHeader_SetItemWidth GUICtrlHeader_SetOrderArray GUICtrlHeader_SetUnicodeFormat GUICtrlIpAddress_ClearAddress GUICtrlIpAddress_Create GUICtrlIpAddress_Destroy GUICtrlIpAddress_Get GUICtrlIpAddress_GetArray GUICtrlIpAddress_GetEx GUICtrlIpAddress_IsBlank GUICtrlIpAddress_Set GUICtrlIpAddress_SetArray GUICtrlIpAddress_SetEx GUICtrlIpAddress_SetFocus GUICtrlIpAddress_SetFont GUICtrlIpAddress_SetRange GUICtrlIpAddress_ShowHide GUICtrlListBox_AddFile GUICtrlListBox_AddString GUICtrlListBox_BeginUpdate GUICtrlListBox_ClickItem GUICtrlListBox_Create GUICtrlListBox_DeleteString GUICtrlListBox_Destroy GUICtrlListBox_Dir GUICtrlListBox_EndUpdate GUICtrlListBox_FindInText GUICtrlListBox_FindString GUICtrlListBox_GetAnchorIndex GUICtrlListBox_GetCaretIndex GUICtrlListBox_GetCount GUICtrlListBox_GetCurSel GUICtrlListBox_GetHorizontalExtent GUICtrlListBox_GetItemData GUICtrlListBox_GetItemHeight GUICtrlListBox_GetItemRect GUICtrlListBox_GetItemRectEx GUICtrlListBox_GetListBoxInfo GUICtrlListBox_GetLocale GUICtrlListBox_GetLocaleCountry GUICtrlListBox_GetLocaleLang GUICtrlListBox_GetLocalePrimLang GUICtrlListBox_GetLocaleSubLang GUICtrlListBox_GetSel GUICtrlListBox_GetSelCount GUICtrlListBox_GetSelItems GUICtrlListBox_GetSelItemsText GUICtrlListBox_GetText GUICtrlListBox_GetTextLen GUICtrlListBox_GetTopIndex GUICtrlListBox_InitStorage GUICtrlListBox_InsertString GUICtrlListBox_ItemFromPoint GUICtrlListBox_ReplaceString GUICtrlListBox_ResetContent GUICtrlListBox_SelectString GUICtrlListBox_SelItemRange GUICtrlListBox_SelItemRangeEx GUICtrlListBox_SetAnchorIndex GUICtrlListBox_SetCaretIndex GUICtrlListBox_SetColumnWidth GUICtrlListBox_SetCurSel GUICtrlListBox_SetHorizontalExtent GUICtrlListBox_SetItemData GUICtrlListBox_SetItemHeight GUICtrlListBox_SetLocale GUICtrlListBox_SetSel GUICtrlListBox_SetTabStops GUICtrlListBox_SetTopIndex GUICtrlListBox_Sort GUICtrlListBox_SwapString GUICtrlListBox_UpdateHScroll GUICtrlListView_AddArray GUICtrlListView_AddColumn GUICtrlListView_AddItem GUICtrlListView_AddSubItem GUICtrlListView_ApproximateViewHeight GUICtrlListView_ApproximateViewRect GUICtrlListView_ApproximateViewWidth GUICtrlListView_Arrange GUICtrlListView_BeginUpdate GUICtrlListView_CancelEditLabel GUICtrlListView_ClickItem GUICtrlListView_CopyItems GUICtrlListView_Create GUICtrlListView_CreateDragImage GUICtrlListView_CreateSolidBitMap GUICtrlListView_DeleteAllItems GUICtrlListView_DeleteColumn GUICtrlListView_DeleteItem GUICtrlListView_DeleteItemsSelected GUICtrlListView_Destroy GUICtrlListView_DrawDragImage GUICtrlListView_EditLabel GUICtrlListView_EnableGroupView GUICtrlListView_EndUpdate GUICtrlListView_EnsureVisible GUICtrlListView_FindInText GUICtrlListView_FindItem GUICtrlListView_FindNearest GUICtrlListView_FindParam GUICtrlListView_FindText GUICtrlListView_GetBkColor GUICtrlListView_GetBkImage GUICtrlListView_GetCallbackMask GUICtrlListView_GetColumn GUICtrlListView_GetColumnCount GUICtrlListView_GetColumnOrder GUICtrlListView_GetColumnOrderArray GUICtrlListView_GetColumnWidth GUICtrlListView_GetCounterPage GUICtrlListView_GetEditControl GUICtrlListView_GetExtendedListViewStyle GUICtrlListView_GetFocusedGroup GUICtrlListView_GetGroupCount GUICtrlListView_GetGroupInfo GUICtrlListView_GetGroupInfoByIndex GUICtrlListView_GetGroupRect GUICtrlListView_GetGroupViewEnabled GUICtrlListView_GetHeader GUICtrlListView_GetHotCursor GUICtrlListView_GetHotItem GUICtrlListView_GetHoverTime GUICtrlListView_GetImageList GUICtrlListView_GetISearchString GUICtrlListView_GetItem GUICtrlListView_GetItemChecked GUICtrlListView_GetItemCount GUICtrlListView_GetItemCut GUICtrlListView_GetItemDropHilited GUICtrlListView_GetItemEx GUICtrlListView_GetItemFocused GUICtrlListView_GetItemGroupID GUICtrlListView_GetItemImage GUICtrlListView_GetItemIndent GUICtrlListView_GetItemParam GUICtrlListView_GetItemPosition GUICtrlListView_GetItemPositionX GUICtrlListView_GetItemPositionY GUICtrlListView_GetItemRect GUICtrlListView_GetItemRectEx GUICtrlListView_GetItemSelected GUICtrlListView_GetItemSpacing GUICtrlListView_GetItemSpacingX GUICtrlListView_GetItemSpacingY GUICtrlListView_GetItemState GUICtrlListView_GetItemStateImage GUICtrlListView_GetItemText GUICtrlListView_GetItemTextArray GUICtrlListView_GetItemTextString GUICtrlListView_GetNextItem GUICtrlListView_GetNumberOfWorkAreas GUICtrlListView_GetOrigin GUICtrlListView_GetOriginX GUICtrlListView_GetOriginY GUICtrlListView_GetOutlineColor GUICtrlListView_GetSelectedColumn GUICtrlListView_GetSelectedCount GUICtrlListView_GetSelectedIndices GUICtrlListView_GetSelectionMark GUICtrlListView_GetStringWidth GUICtrlListView_GetSubItemRect GUICtrlListView_GetTextBkColor GUICtrlListView_GetTextColor GUICtrlListView_GetToolTips GUICtrlListView_GetTopIndex GUICtrlListView_GetUnicodeFormat GUICtrlListView_GetView GUICtrlListView_GetViewDetails GUICtrlListView_GetViewLarge GUICtrlListView_GetViewList GUICtrlListView_GetViewRect GUICtrlListView_GetViewSmall GUICtrlListView_GetViewTile GUICtrlListView_HideColumn GUICtrlListView_HitTest GUICtrlListView_InsertColumn GUICtrlListView_InsertGroup GUICtrlListView_InsertItem GUICtrlListView_JustifyColumn GUICtrlListView_MapIDToIndex GUICtrlListView_MapIndexToID GUICtrlListView_RedrawItems GUICtrlListView_RegisterSortCallBack GUICtrlListView_RemoveAllGroups GUICtrlListView_RemoveGroup GUICtrlListView_Scroll GUICtrlListView_SetBkColor GUICtrlListView_SetBkImage GUICtrlListView_SetCallBackMask GUICtrlListView_SetColumn GUICtrlListView_SetColumnOrder GUICtrlListView_SetColumnOrderArray GUICtrlListView_SetColumnWidth GUICtrlListView_SetExtendedListViewStyle GUICtrlListView_SetGroupInfo GUICtrlListView_SetHotItem GUICtrlListView_SetHoverTime GUICtrlListView_SetIconSpacing GUICtrlListView_SetImageList GUICtrlListView_SetItem GUICtrlListView_SetItemChecked GUICtrlListView_SetItemCount GUICtrlListView_SetItemCut GUICtrlListView_SetItemDropHilited GUICtrlListView_SetItemEx GUICtrlListView_SetItemFocused GUICtrlListView_SetItemGroupID GUICtrlListView_SetItemImage GUICtrlListView_SetItemIndent GUICtrlListView_SetItemParam GUICtrlListView_SetItemPosition GUICtrlListView_SetItemPosition32 GUICtrlListView_SetItemSelected GUICtrlListView_SetItemState GUICtrlListView_SetItemStateImage GUICtrlListView_SetItemText GUICtrlListView_SetOutlineColor GUICtrlListView_SetSelectedColumn GUICtrlListView_SetSelectionMark GUICtrlListView_SetTextBkColor GUICtrlListView_SetTextColor GUICtrlListView_SetToolTips GUICtrlListView_SetUnicodeFormat GUICtrlListView_SetView GUICtrlListView_SetWorkAreas GUICtrlListView_SimpleSort GUICtrlListView_SortItems GUICtrlListView_SubItemHitTest GUICtrlListView_UnRegisterSortCallBack GUICtrlMenu_AddMenuItem GUICtrlMenu_AppendMenu GUICtrlMenu_CalculatePopupWindowPosition GUICtrlMenu_CheckMenuItem GUICtrlMenu_CheckRadioItem GUICtrlMenu_CreateMenu GUICtrlMenu_CreatePopup GUICtrlMenu_DeleteMenu GUICtrlMenu_DestroyMenu GUICtrlMenu_DrawMenuBar GUICtrlMenu_EnableMenuItem GUICtrlMenu_FindItem GUICtrlMenu_FindParent GUICtrlMenu_GetItemBmp GUICtrlMenu_GetItemBmpChecked GUICtrlMenu_GetItemBmpUnchecked GUICtrlMenu_GetItemChecked GUICtrlMenu_GetItemCount GUICtrlMenu_GetItemData GUICtrlMenu_GetItemDefault GUICtrlMenu_GetItemDisabled GUICtrlMenu_GetItemEnabled GUICtrlMenu_GetItemGrayed GUICtrlMenu_GetItemHighlighted GUICtrlMenu_GetItemID GUICtrlMenu_GetItemInfo GUICtrlMenu_GetItemRect GUICtrlMenu_GetItemRectEx GUICtrlMenu_GetItemState GUICtrlMenu_GetItemStateEx GUICtrlMenu_GetItemSubMenu GUICtrlMenu_GetItemText GUICtrlMenu_GetItemType GUICtrlMenu_GetMenu GUICtrlMenu_GetMenuBackground GUICtrlMenu_GetMenuBarInfo GUICtrlMenu_GetMenuContextHelpID GUICtrlMenu_GetMenuData GUICtrlMenu_GetMenuDefaultItem GUICtrlMenu_GetMenuHeight GUICtrlMenu_GetMenuInfo GUICtrlMenu_GetMenuStyle GUICtrlMenu_GetSystemMenu GUICtrlMenu_InsertMenuItem GUICtrlMenu_InsertMenuItemEx GUICtrlMenu_IsMenu GUICtrlMenu_LoadMenu GUICtrlMenu_MapAccelerator GUICtrlMenu_MenuItemFromPoint GUICtrlMenu_RemoveMenu GUICtrlMenu_SetItemBitmaps GUICtrlMenu_SetItemBmp GUICtrlMenu_SetItemBmpChecked GUICtrlMenu_SetItemBmpUnchecked GUICtrlMenu_SetItemChecked GUICtrlMenu_SetItemData GUICtrlMenu_SetItemDefault GUICtrlMenu_SetItemDisabled GUICtrlMenu_SetItemEnabled GUICtrlMenu_SetItemGrayed GUICtrlMenu_SetItemHighlighted GUICtrlMenu_SetItemID GUICtrlMenu_SetItemInfo GUICtrlMenu_SetItemState GUICtrlMenu_SetItemSubMenu GUICtrlMenu_SetItemText GUICtrlMenu_SetItemType GUICtrlMenu_SetMenu GUICtrlMenu_SetMenuBackground GUICtrlMenu_SetMenuContextHelpID GUICtrlMenu_SetMenuData GUICtrlMenu_SetMenuDefaultItem GUICtrlMenu_SetMenuHeight GUICtrlMenu_SetMenuInfo GUICtrlMenu_SetMenuStyle GUICtrlMenu_TrackPopupMenu GUICtrlMonthCal_Create GUICtrlMonthCal_Destroy GUICtrlMonthCal_GetCalendarBorder GUICtrlMonthCal_GetCalendarCount GUICtrlMonthCal_GetColor GUICtrlMonthCal_GetColorArray GUICtrlMonthCal_GetCurSel GUICtrlMonthCal_GetCurSelStr GUICtrlMonthCal_GetFirstDOW GUICtrlMonthCal_GetFirstDOWStr GUICtrlMonthCal_GetMaxSelCount GUICtrlMonthCal_GetMaxTodayWidth GUICtrlMonthCal_GetMinReqHeight GUICtrlMonthCal_GetMinReqRect GUICtrlMonthCal_GetMinReqRectArray GUICtrlMonthCal_GetMinReqWidth GUICtrlMonthCal_GetMonthDelta GUICtrlMonthCal_GetMonthRange GUICtrlMonthCal_GetMonthRangeMax GUICtrlMonthCal_GetMonthRangeMaxStr GUICtrlMonthCal_GetMonthRangeMin GUICtrlMonthCal_GetMonthRangeMinStr GUICtrlMonthCal_GetMonthRangeSpan GUICtrlMonthCal_GetRange GUICtrlMonthCal_GetRangeMax GUICtrlMonthCal_GetRangeMaxStr GUICtrlMonthCal_GetRangeMin GUICtrlMonthCal_GetRangeMinStr GUICtrlMonthCal_GetSelRange GUICtrlMonthCal_GetSelRangeMax GUICtrlMonthCal_GetSelRangeMaxStr GUICtrlMonthCal_GetSelRangeMin GUICtrlMonthCal_GetSelRangeMinStr GUICtrlMonthCal_GetToday GUICtrlMonthCal_GetTodayStr GUICtrlMonthCal_GetUnicodeFormat GUICtrlMonthCal_HitTest GUICtrlMonthCal_SetCalendarBorder GUICtrlMonthCal_SetColor GUICtrlMonthCal_SetCurSel GUICtrlMonthCal_SetDayState GUICtrlMonthCal_SetFirstDOW GUICtrlMonthCal_SetMaxSelCount GUICtrlMonthCal_SetMonthDelta GUICtrlMonthCal_SetRange GUICtrlMonthCal_SetSelRange GUICtrlMonthCal_SetToday GUICtrlMonthCal_SetUnicodeFormat GUICtrlRebar_AddBand GUICtrlRebar_AddToolBarBand GUICtrlRebar_BeginDrag GUICtrlRebar_Create GUICtrlRebar_DeleteBand GUICtrlRebar_Destroy GUICtrlRebar_DragMove GUICtrlRebar_EndDrag GUICtrlRebar_GetBandBackColor GUICtrlRebar_GetBandBorders GUICtrlRebar_GetBandBordersEx GUICtrlRebar_GetBandChildHandle GUICtrlRebar_GetBandChildSize GUICtrlRebar_GetBandCount GUICtrlRebar_GetBandForeColor GUICtrlRebar_GetBandHeaderSize GUICtrlRebar_GetBandID GUICtrlRebar_GetBandIdealSize GUICtrlRebar_GetBandLength GUICtrlRebar_GetBandLParam GUICtrlRebar_GetBandMargins GUICtrlRebar_GetBandMarginsEx GUICtrlRebar_GetBandRect GUICtrlRebar_GetBandRectEx GUICtrlRebar_GetBandStyle GUICtrlRebar_GetBandStyleBreak GUICtrlRebar_GetBandStyleChildEdge GUICtrlRebar_GetBandStyleFixedBMP GUICtrlRebar_GetBandStyleFixedSize GUICtrlRebar_GetBandStyleGripperAlways GUICtrlRebar_GetBandStyleHidden GUICtrlRebar_GetBandStyleHideTitle GUICtrlRebar_GetBandStyleNoGripper GUICtrlRebar_GetBandStyleTopAlign GUICtrlRebar_GetBandStyleUseChevron GUICtrlRebar_GetBandStyleVariableHeight GUICtrlRebar_GetBandText GUICtrlRebar_GetBarHeight GUICtrlRebar_GetBarInfo GUICtrlRebar_GetBKColor GUICtrlRebar_GetColorScheme GUICtrlRebar_GetRowCount GUICtrlRebar_GetRowHeight GUICtrlRebar_GetTextColor GUICtrlRebar_GetToolTips GUICtrlRebar_GetUnicodeFormat GUICtrlRebar_HitTest GUICtrlRebar_IDToIndex GUICtrlRebar_MaximizeBand GUICtrlRebar_MinimizeBand GUICtrlRebar_MoveBand GUICtrlRebar_SetBandBackColor GUICtrlRebar_SetBandForeColor GUICtrlRebar_SetBandHeaderSize GUICtrlRebar_SetBandID GUICtrlRebar_SetBandIdealSize GUICtrlRebar_SetBandLength GUICtrlRebar_SetBandLParam GUICtrlRebar_SetBandStyle GUICtrlRebar_SetBandStyleBreak GUICtrlRebar_SetBandStyleChildEdge GUICtrlRebar_SetBandStyleFixedBMP GUICtrlRebar_SetBandStyleFixedSize GUICtrlRebar_SetBandStyleGripperAlways GUICtrlRebar_SetBandStyleHidden GUICtrlRebar_SetBandStyleHideTitle GUICtrlRebar_SetBandStyleNoGripper GUICtrlRebar_SetBandStyleTopAlign GUICtrlRebar_SetBandStyleUseChevron GUICtrlRebar_SetBandStyleVariableHeight GUICtrlRebar_SetBandText GUICtrlRebar_SetBarInfo GUICtrlRebar_SetBKColor GUICtrlRebar_SetColorScheme GUICtrlRebar_SetTextColor GUICtrlRebar_SetToolTips GUICtrlRebar_SetUnicodeFormat GUICtrlRebar_ShowBand GUICtrlRichEdit_AppendText GUICtrlRichEdit_AutoDetectURL GUICtrlRichEdit_CanPaste GUICtrlRichEdit_CanPasteSpecial GUICtrlRichEdit_CanRedo GUICtrlRichEdit_CanUndo GUICtrlRichEdit_ChangeFontSize GUICtrlRichEdit_Copy GUICtrlRichEdit_Create GUICtrlRichEdit_Cut GUICtrlRichEdit_Deselect GUICtrlRichEdit_Destroy GUICtrlRichEdit_EmptyUndoBuffer GUICtrlRichEdit_FindText GUICtrlRichEdit_FindTextInRange GUICtrlRichEdit_GetBkColor GUICtrlRichEdit_GetCharAttributes GUICtrlRichEdit_GetCharBkColor GUICtrlRichEdit_GetCharColor GUICtrlRichEdit_GetCharPosFromXY GUICtrlRichEdit_GetCharPosOfNextWord GUICtrlRichEdit_GetCharPosOfPreviousWord GUICtrlRichEdit_GetCharWordBreakInfo GUICtrlRichEdit_GetFirstCharPosOnLine GUICtrlRichEdit_GetFont GUICtrlRichEdit_GetLineCount GUICtrlRichEdit_GetLineLength GUICtrlRichEdit_GetLineNumberFromCharPos GUICtrlRichEdit_GetNextRedo GUICtrlRichEdit_GetNextUndo GUICtrlRichEdit_GetNumberOfFirstVisibleLine GUICtrlRichEdit_GetParaAlignment GUICtrlRichEdit_GetParaAttributes GUICtrlRichEdit_GetParaBorder GUICtrlRichEdit_GetParaIndents GUICtrlRichEdit_GetParaNumbering GUICtrlRichEdit_GetParaShading GUICtrlRichEdit_GetParaSpacing GUICtrlRichEdit_GetParaTabStops GUICtrlRichEdit_GetPasswordChar GUICtrlRichEdit_GetRECT GUICtrlRichEdit_GetScrollPos GUICtrlRichEdit_GetSel GUICtrlRichEdit_GetSelAA GUICtrlRichEdit_GetSelText GUICtrlRichEdit_GetSpaceUnit GUICtrlRichEdit_GetText GUICtrlRichEdit_GetTextInLine GUICtrlRichEdit_GetTextInRange GUICtrlRichEdit_GetTextLength GUICtrlRichEdit_GetVersion GUICtrlRichEdit_GetXYFromCharPos GUICtrlRichEdit_GetZoom GUICtrlRichEdit_GotoCharPos GUICtrlRichEdit_HideSelection GUICtrlRichEdit_InsertText GUICtrlRichEdit_IsModified GUICtrlRichEdit_IsTextSelected GUICtrlRichEdit_Paste GUICtrlRichEdit_PasteSpecial GUICtrlRichEdit_PauseRedraw GUICtrlRichEdit_Redo GUICtrlRichEdit_ReplaceText GUICtrlRichEdit_ResumeRedraw GUICtrlRichEdit_ScrollLineOrPage GUICtrlRichEdit_ScrollLines GUICtrlRichEdit_ScrollToCaret GUICtrlRichEdit_SetBkColor GUICtrlRichEdit_SetCharAttributes GUICtrlRichEdit_SetCharBkColor GUICtrlRichEdit_SetCharColor GUICtrlRichEdit_SetEventMask GUICtrlRichEdit_SetFont GUICtrlRichEdit_SetLimitOnText GUICtrlRichEdit_SetModified GUICtrlRichEdit_SetParaAlignment GUICtrlRichEdit_SetParaAttributes GUICtrlRichEdit_SetParaBorder GUICtrlRichEdit_SetParaIndents GUICtrlRichEdit_SetParaNumbering GUICtrlRichEdit_SetParaShading GUICtrlRichEdit_SetParaSpacing GUICtrlRichEdit_SetParaTabStops GUICtrlRichEdit_SetPasswordChar GUICtrlRichEdit_SetReadOnly GUICtrlRichEdit_SetRECT GUICtrlRichEdit_SetScrollPos GUICtrlRichEdit_SetSel GUICtrlRichEdit_SetSpaceUnit GUICtrlRichEdit_SetTabStops GUICtrlRichEdit_SetText GUICtrlRichEdit_SetUndoLimit GUICtrlRichEdit_SetZoom GUICtrlRichEdit_StreamFromFile GUICtrlRichEdit_StreamFromVar GUICtrlRichEdit_StreamToFile GUICtrlRichEdit_StreamToVar GUICtrlRichEdit_Undo GUICtrlSlider_ClearSel GUICtrlSlider_ClearTics GUICtrlSlider_Create GUICtrlSlider_Destroy GUICtrlSlider_GetBuddy GUICtrlSlider_GetChannelRect GUICtrlSlider_GetChannelRectEx GUICtrlSlider_GetLineSize GUICtrlSlider_GetLogicalTics GUICtrlSlider_GetNumTics GUICtrlSlider_GetPageSize GUICtrlSlider_GetPos GUICtrlSlider_GetRange GUICtrlSlider_GetRangeMax GUICtrlSlider_GetRangeMin GUICtrlSlider_GetSel GUICtrlSlider_GetSelEnd GUICtrlSlider_GetSelStart GUICtrlSlider_GetThumbLength GUICtrlSlider_GetThumbRect GUICtrlSlider_GetThumbRectEx GUICtrlSlider_GetTic GUICtrlSlider_GetTicPos GUICtrlSlider_GetToolTips GUICtrlSlider_GetUnicodeFormat GUICtrlSlider_SetBuddy GUICtrlSlider_SetLineSize GUICtrlSlider_SetPageSize GUICtrlSlider_SetPos GUICtrlSlider_SetRange GUICtrlSlider_SetRangeMax GUICtrlSlider_SetRangeMin GUICtrlSlider_SetSel GUICtrlSlider_SetSelEnd GUICtrlSlider_SetSelStart GUICtrlSlider_SetThumbLength GUICtrlSlider_SetTic GUICtrlSlider_SetTicFreq GUICtrlSlider_SetTipSide GUICtrlSlider_SetToolTips GUICtrlSlider_SetUnicodeFormat GUICtrlStatusBar_Create GUICtrlStatusBar_Destroy GUICtrlStatusBar_EmbedControl GUICtrlStatusBar_GetBorders GUICtrlStatusBar_GetBordersHorz GUICtrlStatusBar_GetBordersRect GUICtrlStatusBar_GetBordersVert GUICtrlStatusBar_GetCount GUICtrlStatusBar_GetHeight GUICtrlStatusBar_GetIcon GUICtrlStatusBar_GetParts GUICtrlStatusBar_GetRect GUICtrlStatusBar_GetRectEx GUICtrlStatusBar_GetText GUICtrlStatusBar_GetTextFlags GUICtrlStatusBar_GetTextLength GUICtrlStatusBar_GetTextLengthEx GUICtrlStatusBar_GetTipText GUICtrlStatusBar_GetUnicodeFormat GUICtrlStatusBar_GetWidth GUICtrlStatusBar_IsSimple GUICtrlStatusBar_Resize GUICtrlStatusBar_SetBkColor GUICtrlStatusBar_SetIcon GUICtrlStatusBar_SetMinHeight GUICtrlStatusBar_SetParts GUICtrlStatusBar_SetSimple GUICtrlStatusBar_SetText GUICtrlStatusBar_SetTipText GUICtrlStatusBar_SetUnicodeFormat GUICtrlStatusBar_ShowHide GUICtrlTab_ActivateTab GUICtrlTab_ClickTab GUICtrlTab_Create GUICtrlTab_DeleteAllItems GUICtrlTab_DeleteItem GUICtrlTab_DeselectAll GUICtrlTab_Destroy GUICtrlTab_FindTab GUICtrlTab_GetCurFocus GUICtrlTab_GetCurSel GUICtrlTab_GetDisplayRect GUICtrlTab_GetDisplayRectEx GUICtrlTab_GetExtendedStyle GUICtrlTab_GetImageList GUICtrlTab_GetItem GUICtrlTab_GetItemCount GUICtrlTab_GetItemImage GUICtrlTab_GetItemParam GUICtrlTab_GetItemRect GUICtrlTab_GetItemRectEx GUICtrlTab_GetItemState GUICtrlTab_GetItemText GUICtrlTab_GetRowCount GUICtrlTab_GetToolTips GUICtrlTab_GetUnicodeFormat GUICtrlTab_HighlightItem GUICtrlTab_HitTest GUICtrlTab_InsertItem GUICtrlTab_RemoveImage GUICtrlTab_SetCurFocus GUICtrlTab_SetCurSel GUICtrlTab_SetExtendedStyle GUICtrlTab_SetImageList GUICtrlTab_SetItem GUICtrlTab_SetItemImage GUICtrlTab_SetItemParam GUICtrlTab_SetItemSize GUICtrlTab_SetItemState GUICtrlTab_SetItemText GUICtrlTab_SetMinTabWidth GUICtrlTab_SetPadding GUICtrlTab_SetToolTips GUICtrlTab_SetUnicodeFormat GUICtrlToolbar_AddBitmap GUICtrlToolbar_AddButton GUICtrlToolbar_AddButtonSep GUICtrlToolbar_AddString GUICtrlToolbar_ButtonCount GUICtrlToolbar_CheckButton GUICtrlToolbar_ClickAccel GUICtrlToolbar_ClickButton GUICtrlToolbar_ClickIndex GUICtrlToolbar_CommandToIndex GUICtrlToolbar_Create GUICtrlToolbar_Customize GUICtrlToolbar_DeleteButton GUICtrlToolbar_Destroy GUICtrlToolbar_EnableButton GUICtrlToolbar_FindToolbar GUICtrlToolbar_GetAnchorHighlight GUICtrlToolbar_GetBitmapFlags GUICtrlToolbar_GetButtonBitmap GUICtrlToolbar_GetButtonInfo GUICtrlToolbar_GetButtonInfoEx GUICtrlToolbar_GetButtonParam GUICtrlToolbar_GetButtonRect GUICtrlToolbar_GetButtonRectEx GUICtrlToolbar_GetButtonSize GUICtrlToolbar_GetButtonState GUICtrlToolbar_GetButtonStyle GUICtrlToolbar_GetButtonText GUICtrlToolbar_GetColorScheme GUICtrlToolbar_GetDisabledImageList GUICtrlToolbar_GetExtendedStyle GUICtrlToolbar_GetHotImageList GUICtrlToolbar_GetHotItem GUICtrlToolbar_GetImageList GUICtrlToolbar_GetInsertMark GUICtrlToolbar_GetInsertMarkColor GUICtrlToolbar_GetMaxSize GUICtrlToolbar_GetMetrics GUICtrlToolbar_GetPadding GUICtrlToolbar_GetRows GUICtrlToolbar_GetString GUICtrlToolbar_GetStyle GUICtrlToolbar_GetStyleAltDrag GUICtrlToolbar_GetStyleCustomErase GUICtrlToolbar_GetStyleFlat GUICtrlToolbar_GetStyleList GUICtrlToolbar_GetStyleRegisterDrop GUICtrlToolbar_GetStyleToolTips GUICtrlToolbar_GetStyleTransparent GUICtrlToolbar_GetStyleWrapable GUICtrlToolbar_GetTextRows GUICtrlToolbar_GetToolTips GUICtrlToolbar_GetUnicodeFormat GUICtrlToolbar_HideButton GUICtrlToolbar_HighlightButton GUICtrlToolbar_HitTest GUICtrlToolbar_IndexToCommand GUICtrlToolbar_InsertButton GUICtrlToolbar_InsertMarkHitTest GUICtrlToolbar_IsButtonChecked GUICtrlToolbar_IsButtonEnabled GUICtrlToolbar_IsButtonHidden GUICtrlToolbar_IsButtonHighlighted GUICtrlToolbar_IsButtonIndeterminate GUICtrlToolbar_IsButtonPressed GUICtrlToolbar_LoadBitmap GUICtrlToolbar_LoadImages GUICtrlToolbar_MapAccelerator GUICtrlToolbar_MoveButton GUICtrlToolbar_PressButton GUICtrlToolbar_SetAnchorHighlight GUICtrlToolbar_SetBitmapSize GUICtrlToolbar_SetButtonBitMap GUICtrlToolbar_SetButtonInfo GUICtrlToolbar_SetButtonInfoEx GUICtrlToolbar_SetButtonParam GUICtrlToolbar_SetButtonSize GUICtrlToolbar_SetButtonState GUICtrlToolbar_SetButtonStyle GUICtrlToolbar_SetButtonText GUICtrlToolbar_SetButtonWidth GUICtrlToolbar_SetCmdID GUICtrlToolbar_SetColorScheme GUICtrlToolbar_SetDisabledImageList GUICtrlToolbar_SetDrawTextFlags GUICtrlToolbar_SetExtendedStyle GUICtrlToolbar_SetHotImageList GUICtrlToolbar_SetHotItem GUICtrlToolbar_SetImageList GUICtrlToolbar_SetIndent GUICtrlToolbar_SetIndeterminate GUICtrlToolbar_SetInsertMark GUICtrlToolbar_SetInsertMarkColor GUICtrlToolbar_SetMaxTextRows GUICtrlToolbar_SetMetrics GUICtrlToolbar_SetPadding GUICtrlToolbar_SetParent GUICtrlToolbar_SetRows GUICtrlToolbar_SetStyle GUICtrlToolbar_SetStyleAltDrag GUICtrlToolbar_SetStyleCustomErase GUICtrlToolbar_SetStyleFlat GUICtrlToolbar_SetStyleList GUICtrlToolbar_SetStyleRegisterDrop GUICtrlToolbar_SetStyleToolTips GUICtrlToolbar_SetStyleTransparent GUICtrlToolbar_SetStyleWrapable GUICtrlToolbar_SetToolTips GUICtrlToolbar_SetUnicodeFormat GUICtrlToolbar_SetWindowTheme GUICtrlTreeView_Add GUICtrlTreeView_AddChild GUICtrlTreeView_AddChildFirst GUICtrlTreeView_AddFirst GUICtrlTreeView_BeginUpdate GUICtrlTreeView_ClickItem GUICtrlTreeView_Create GUICtrlTreeView_CreateDragImage GUICtrlTreeView_CreateSolidBitMap GUICtrlTreeView_Delete GUICtrlTreeView_DeleteAll GUICtrlTreeView_DeleteChildren GUICtrlTreeView_Destroy GUICtrlTreeView_DisplayRect GUICtrlTreeView_DisplayRectEx GUICtrlTreeView_EditText GUICtrlTreeView_EndEdit GUICtrlTreeView_EndUpdate GUICtrlTreeView_EnsureVisible GUICtrlTreeView_Expand GUICtrlTreeView_ExpandedOnce GUICtrlTreeView_FindItem GUICtrlTreeView_FindItemEx GUICtrlTreeView_GetBkColor GUICtrlTreeView_GetBold GUICtrlTreeView_GetChecked GUICtrlTreeView_GetChildCount GUICtrlTreeView_GetChildren GUICtrlTreeView_GetCount GUICtrlTreeView_GetCut GUICtrlTreeView_GetDropTarget GUICtrlTreeView_GetEditControl GUICtrlTreeView_GetExpanded GUICtrlTreeView_GetFirstChild GUICtrlTreeView_GetFirstItem GUICtrlTreeView_GetFirstVisible GUICtrlTreeView_GetFocused GUICtrlTreeView_GetHeight GUICtrlTreeView_GetImageIndex GUICtrlTreeView_GetImageListIconHandle GUICtrlTreeView_GetIndent GUICtrlTreeView_GetInsertMarkColor GUICtrlTreeView_GetISearchString GUICtrlTreeView_GetItemByIndex GUICtrlTreeView_GetItemHandle GUICtrlTreeView_GetItemParam GUICtrlTreeView_GetLastChild GUICtrlTreeView_GetLineColor GUICtrlTreeView_GetNext GUICtrlTreeView_GetNextChild GUICtrlTreeView_GetNextSibling GUICtrlTreeView_GetNextVisible GUICtrlTreeView_GetNormalImageList GUICtrlTreeView_GetParentHandle GUICtrlTreeView_GetParentParam GUICtrlTreeView_GetPrev GUICtrlTreeView_GetPrevChild GUICtrlTreeView_GetPrevSibling GUICtrlTreeView_GetPrevVisible GUICtrlTreeView_GetScrollTime GUICtrlTreeView_GetSelected GUICtrlTreeView_GetSelectedImageIndex GUICtrlTreeView_GetSelection GUICtrlTreeView_GetSiblingCount GUICtrlTreeView_GetState GUICtrlTreeView_GetStateImageIndex GUICtrlTreeView_GetStateImageList GUICtrlTreeView_GetText GUICtrlTreeView_GetTextColor GUICtrlTreeView_GetToolTips GUICtrlTreeView_GetTree GUICtrlTreeView_GetUnicodeFormat GUICtrlTreeView_GetVisible GUICtrlTreeView_GetVisibleCount GUICtrlTreeView_HitTest GUICtrlTreeView_HitTestEx GUICtrlTreeView_HitTestItem GUICtrlTreeView_Index GUICtrlTreeView_InsertItem GUICtrlTreeView_IsFirstItem GUICtrlTreeView_IsParent GUICtrlTreeView_Level GUICtrlTreeView_SelectItem GUICtrlTreeView_SelectItemByIndex GUICtrlTreeView_SetBkColor GUICtrlTreeView_SetBold GUICtrlTreeView_SetChecked GUICtrlTreeView_SetCheckedByIndex GUICtrlTreeView_SetChildren GUICtrlTreeView_SetCut GUICtrlTreeView_SetDropTarget GUICtrlTreeView_SetFocused GUICtrlTreeView_SetHeight GUICtrlTreeView_SetIcon GUICtrlTreeView_SetImageIndex GUICtrlTreeView_SetIndent GUICtrlTreeView_SetInsertMark GUICtrlTreeView_SetInsertMarkColor GUICtrlTreeView_SetItemHeight GUICtrlTreeView_SetItemParam GUICtrlTreeView_SetLineColor GUICtrlTreeView_SetNormalImageList GUICtrlTreeView_SetScrollTime GUICtrlTreeView_SetSelected GUICtrlTreeView_SetSelectedImageIndex GUICtrlTreeView_SetState GUICtrlTreeView_SetStateImageIndex GUICtrlTreeView_SetStateImageList GUICtrlTreeView_SetText GUICtrlTreeView_SetTextColor GUICtrlTreeView_SetToolTips GUICtrlTreeView_SetUnicodeFormat GUICtrlTreeView_Sort GUIImageList_Add GUIImageList_AddBitmap GUIImageList_AddIcon GUIImageList_AddMasked GUIImageList_BeginDrag GUIImageList_Copy GUIImageList_Create GUIImageList_Destroy GUIImageList_DestroyIcon GUIImageList_DragEnter GUIImageList_DragLeave GUIImageList_DragMove GUIImageList_Draw GUIImageList_DrawEx GUIImageList_Duplicate GUIImageList_EndDrag GUIImageList_GetBkColor GUIImageList_GetIcon GUIImageList_GetIconHeight GUIImageList_GetIconSize GUIImageList_GetIconSizeEx GUIImageList_GetIconWidth GUIImageList_GetImageCount GUIImageList_GetImageInfoEx GUIImageList_Remove GUIImageList_ReplaceIcon GUIImageList_SetBkColor GUIImageList_SetIconSize GUIImageList_SetImageCount GUIImageList_Swap GUIScrollBars_EnableScrollBar GUIScrollBars_GetScrollBarInfoEx GUIScrollBars_GetScrollBarRect GUIScrollBars_GetScrollBarRGState GUIScrollBars_GetScrollBarXYLineButton GUIScrollBars_GetScrollBarXYThumbBottom GUIScrollBars_GetScrollBarXYThumbTop GUIScrollBars_GetScrollInfo GUIScrollBars_GetScrollInfoEx GUIScrollBars_GetScrollInfoMax GUIScrollBars_GetScrollInfoMin GUIScrollBars_GetScrollInfoPage GUIScrollBars_GetScrollInfoPos GUIScrollBars_GetScrollInfoTrackPos GUIScrollBars_GetScrollPos GUIScrollBars_GetScrollRange GUIScrollBars_Init GUIScrollBars_ScrollWindow GUIScrollBars_SetScrollInfo GUIScrollBars_SetScrollInfoMax GUIScrollBars_SetScrollInfoMin GUIScrollBars_SetScrollInfoPage GUIScrollBars_SetScrollInfoPos GUIScrollBars_SetScrollRange GUIScrollBars_ShowScrollBar GUIToolTip_Activate GUIToolTip_AddTool GUIToolTip_AdjustRect GUIToolTip_BitsToTTF GUIToolTip_Create GUIToolTip_Deactivate GUIToolTip_DelTool GUIToolTip_Destroy GUIToolTip_EnumTools GUIToolTip_GetBubbleHeight GUIToolTip_GetBubbleSize GUIToolTip_GetBubbleWidth GUIToolTip_GetCurrentTool GUIToolTip_GetDelayTime GUIToolTip_GetMargin GUIToolTip_GetMarginEx GUIToolTip_GetMaxTipWidth GUIToolTip_GetText GUIToolTip_GetTipBkColor GUIToolTip_GetTipTextColor GUIToolTip_GetTitleBitMap GUIToolTip_GetTitleText GUIToolTip_GetToolCount GUIToolTip_GetToolInfo GUIToolTip_HitTest GUIToolTip_NewToolRect GUIToolTip_Pop GUIToolTip_PopUp GUIToolTip_SetDelayTime GUIToolTip_SetMargin GUIToolTip_SetMaxTipWidth GUIToolTip_SetTipBkColor GUIToolTip_SetTipTextColor GUIToolTip_SetTitle GUIToolTip_SetToolInfo GUIToolTip_SetWindowTheme GUIToolTip_ToolExists GUIToolTip_ToolToArray GUIToolTip_TrackActivate GUIToolTip_TrackPosition GUIToolTip_Update GUIToolTip_UpdateTipText HexToString IEAction IEAttach IEBodyReadHTML IEBodyReadText IEBodyWriteHTML IECreate IECreateEmbedded IEDocGetObj IEDocInsertHTML IEDocInsertText IEDocReadHTML IEDocWriteHTML IEErrorNotify IEFormElementCheckBoxSelect IEFormElementGetCollection IEFormElementGetObjByName IEFormElementGetValue IEFormElementOptionSelect IEFormElementRadioSelect IEFormElementSetValue IEFormGetCollection IEFormGetObjByName IEFormImageClick IEFormReset IEFormSubmit IEFrameGetCollection IEFrameGetObjByName IEGetObjById IEGetObjByName IEHeadInsertEventScript IEImgClick IEImgGetCollection IEIsFrameSet IELinkClickByIndex IELinkClickByText IELinkGetCollection IELoadWait IELoadWaitTimeout IENavigate IEPropertyGet IEPropertySet IEQuit IETableGetCollection IETableWriteToArray IETagNameAllGetCollection IETagNameGetCollection IE_Example IE_Introduction IE_VersionInfo INetExplorerCapable INetGetSource INetMail INetSmtpMail IsPressed MathCheckDiv Max MemGlobalAlloc MemGlobalFree MemGlobalLock MemGlobalSize MemGlobalUnlock MemMoveMemory MemVirtualAlloc MemVirtualAllocEx MemVirtualFree MemVirtualFreeEx Min MouseTrap NamedPipes_CallNamedPipe NamedPipes_ConnectNamedPipe NamedPipes_CreateNamedPipe NamedPipes_CreatePipe NamedPipes_DisconnectNamedPipe NamedPipes_GetNamedPipeHandleState NamedPipes_GetNamedPipeInfo NamedPipes_PeekNamedPipe NamedPipes_SetNamedPipeHandleState NamedPipes_TransactNamedPipe NamedPipes_WaitNamedPipe Net_Share_ConnectionEnum Net_Share_FileClose Net_Share_FileEnum Net_Share_FileGetInfo Net_Share_PermStr Net_Share_ResourceStr Net_Share_SessionDel Net_Share_SessionEnum Net_Share_SessionGetInfo Net_Share_ShareAdd Net_Share_ShareCheck Net_Share_ShareDel Net_Share_ShareEnum Net_Share_ShareGetInfo Net_Share_ShareSetInfo Net_Share_StatisticsGetSvr Net_Share_StatisticsGetWrk Now NowCalc NowCalcDate NowDate NowTime PathFull PathGetRelative PathMake PathSplit ProcessGetName ProcessGetPriority Radian ReplaceStringInFile RunDos ScreenCapture_Capture ScreenCapture_CaptureWnd ScreenCapture_SaveImage ScreenCapture_SetBMPFormat ScreenCapture_SetJPGQuality ScreenCapture_SetTIFColorDepth ScreenCapture_SetTIFCompression Security__AdjustTokenPrivileges Security__CreateProcessWithToken Security__DuplicateTokenEx Security__GetAccountSid Security__GetLengthSid Security__GetTokenInformation Security__ImpersonateSelf Security__IsValidSid Security__LookupAccountName Security__LookupAccountSid Security__LookupPrivilegeValue Security__OpenProcessToken Security__OpenThreadToken Security__OpenThreadTokenEx Security__SetPrivilege Security__SetTokenInformation Security__SidToStringSid Security__SidTypeStr Security__StringSidToSid SendMessage SendMessageA SetDate SetTime Singleton SoundClose SoundLength SoundOpen SoundPause SoundPlay SoundPos SoundResume SoundSeek SoundStatus SoundStop SQLite_Changes SQLite_Close SQLite_Display2DResult SQLite_Encode SQLite_ErrCode SQLite_ErrMsg SQLite_Escape SQLite_Exec SQLite_FastEncode SQLite_FastEscape SQLite_FetchData SQLite_FetchNames SQLite_GetTable SQLite_GetTable2d SQLite_LastInsertRowID SQLite_LibVersion SQLite_Open SQLite_Query SQLite_QueryFinalize SQLite_QueryReset SQLite_QuerySingleRow SQLite_SafeMode SQLite_SetTimeout SQLite_Shutdown SQLite_SQLiteExe SQLite_Startup SQLite_TotalChanges StringBetween StringExplode StringInsert StringProper StringRepeat StringTitleCase StringToHex TCPIpToName TempFile TicksToTime Timer_Diff Timer_GetIdleTime Timer_GetTimerID Timer_Init Timer_KillAllTimers Timer_KillTimer Timer_SetTimer TimeToTicks VersionCompare viClose viExecCommand viFindGpib viGpibBusReset viGTL viInteractiveControl viOpen viSetAttribute viSetTimeout WeekNumberISO WinAPI_AbortPath WinAPI_ActivateKeyboardLayout WinAPI_AddClipboardFormatListener WinAPI_AddFontMemResourceEx WinAPI_AddFontResourceEx WinAPI_AddIconOverlay WinAPI_AddIconTransparency WinAPI_AddMRUString WinAPI_AdjustBitmap WinAPI_AdjustTokenPrivileges WinAPI_AdjustWindowRectEx WinAPI_AlphaBlend WinAPI_AngleArc WinAPI_AnimateWindow WinAPI_Arc WinAPI_ArcTo WinAPI_ArrayToStruct WinAPI_AssignProcessToJobObject WinAPI_AssocGetPerceivedType WinAPI_AssocQueryString WinAPI_AttachConsole WinAPI_AttachThreadInput WinAPI_BackupRead WinAPI_BackupReadAbort WinAPI_BackupSeek WinAPI_BackupWrite WinAPI_BackupWriteAbort WinAPI_Beep WinAPI_BeginBufferedPaint WinAPI_BeginDeferWindowPos WinAPI_BeginPaint WinAPI_BeginPath WinAPI_BeginUpdateResource WinAPI_BitBlt WinAPI_BringWindowToTop WinAPI_BroadcastSystemMessage WinAPI_BrowseForFolderDlg WinAPI_BufferedPaintClear WinAPI_BufferedPaintInit WinAPI_BufferedPaintSetAlpha WinAPI_BufferedPaintUnInit WinAPI_CallNextHookEx WinAPI_CallWindowProc WinAPI_CallWindowProcW WinAPI_CascadeWindows WinAPI_ChangeWindowMessageFilterEx WinAPI_CharToOem WinAPI_ChildWindowFromPointEx WinAPI_ClientToScreen WinAPI_ClipCursor WinAPI_CloseDesktop WinAPI_CloseEnhMetaFile WinAPI_CloseFigure WinAPI_CloseHandle WinAPI_CloseThemeData WinAPI_CloseWindow WinAPI_CloseWindowStation WinAPI_CLSIDFromProgID WinAPI_CoInitialize WinAPI_ColorAdjustLuma WinAPI_ColorHLSToRGB WinAPI_ColorRGBToHLS WinAPI_CombineRgn WinAPI_CombineTransform WinAPI_CommandLineToArgv WinAPI_CommDlgExtendedError WinAPI_CommDlgExtendedErrorEx WinAPI_CompareString WinAPI_CompressBitmapBits WinAPI_CompressBuffer WinAPI_ComputeCrc32 WinAPI_ConfirmCredentials WinAPI_CopyBitmap WinAPI_CopyCursor WinAPI_CopyEnhMetaFile WinAPI_CopyFileEx WinAPI_CopyIcon WinAPI_CopyImage WinAPI_CopyRect WinAPI_CopyStruct WinAPI_CoTaskMemAlloc WinAPI_CoTaskMemFree WinAPI_CoTaskMemRealloc WinAPI_CoUninitialize WinAPI_Create32BitHBITMAP WinAPI_Create32BitHICON WinAPI_CreateANDBitmap WinAPI_CreateBitmap WinAPI_CreateBitmapIndirect WinAPI_CreateBrushIndirect WinAPI_CreateBuffer WinAPI_CreateBufferFromStruct WinAPI_CreateCaret WinAPI_CreateColorAdjustment WinAPI_CreateCompatibleBitmap WinAPI_CreateCompatibleBitmapEx WinAPI_CreateCompatibleDC WinAPI_CreateDesktop WinAPI_CreateDIB WinAPI_CreateDIBColorTable WinAPI_CreateDIBitmap WinAPI_CreateDIBSection WinAPI_CreateDirectory WinAPI_CreateDirectoryEx WinAPI_CreateEllipticRgn WinAPI_CreateEmptyIcon WinAPI_CreateEnhMetaFile WinAPI_CreateEvent WinAPI_CreateFile WinAPI_CreateFileEx WinAPI_CreateFileMapping WinAPI_CreateFont WinAPI_CreateFontEx WinAPI_CreateFontIndirect WinAPI_CreateGUID WinAPI_CreateHardLink WinAPI_CreateIcon WinAPI_CreateIconFromResourceEx WinAPI_CreateIconIndirect WinAPI_CreateJobObject WinAPI_CreateMargins WinAPI_CreateMRUList WinAPI_CreateMutex WinAPI_CreateNullRgn WinAPI_CreateNumberFormatInfo WinAPI_CreateObjectID WinAPI_CreatePen WinAPI_CreatePoint WinAPI_CreatePolygonRgn WinAPI_CreateProcess WinAPI_CreateProcessWithToken WinAPI_CreateRect WinAPI_CreateRectEx WinAPI_CreateRectRgn WinAPI_CreateRectRgnIndirect WinAPI_CreateRoundRectRgn WinAPI_CreateSemaphore WinAPI_CreateSize WinAPI_CreateSolidBitmap WinAPI_CreateSolidBrush WinAPI_CreateStreamOnHGlobal WinAPI_CreateString WinAPI_CreateSymbolicLink WinAPI_CreateTransform WinAPI_CreateWindowEx WinAPI_CreateWindowStation WinAPI_DecompressBuffer WinAPI_DecryptFile WinAPI_DeferWindowPos WinAPI_DefineDosDevice WinAPI_DefRawInputProc WinAPI_DefSubclassProc WinAPI_DefWindowProc WinAPI_DefWindowProcW WinAPI_DeleteDC WinAPI_DeleteEnhMetaFile WinAPI_DeleteFile WinAPI_DeleteObject WinAPI_DeleteObjectID WinAPI_DeleteVolumeMountPoint WinAPI_DeregisterShellHookWindow WinAPI_DestroyCaret WinAPI_DestroyCursor WinAPI_DestroyIcon WinAPI_DestroyWindow WinAPI_DeviceIoControl WinAPI_DisplayStruct WinAPI_DllGetVersion WinAPI_DllInstall WinAPI_DllUninstall WinAPI_DPtoLP WinAPI_DragAcceptFiles WinAPI_DragFinish WinAPI_DragQueryFileEx WinAPI_DragQueryPoint WinAPI_DrawAnimatedRects WinAPI_DrawBitmap WinAPI_DrawEdge WinAPI_DrawFocusRect WinAPI_DrawFrameControl WinAPI_DrawIcon WinAPI_DrawIconEx WinAPI_DrawLine WinAPI_DrawShadowText WinAPI_DrawText WinAPI_DrawThemeBackground WinAPI_DrawThemeEdge WinAPI_DrawThemeIcon WinAPI_DrawThemeParentBackground WinAPI_DrawThemeText WinAPI_DrawThemeTextEx WinAPI_DuplicateEncryptionInfoFile WinAPI_DuplicateHandle WinAPI_DuplicateTokenEx WinAPI_DwmDefWindowProc WinAPI_DwmEnableBlurBehindWindow WinAPI_DwmEnableComposition WinAPI_DwmExtendFrameIntoClientArea WinAPI_DwmGetColorizationColor WinAPI_DwmGetColorizationParameters WinAPI_DwmGetWindowAttribute WinAPI_DwmInvalidateIconicBitmaps WinAPI_DwmIsCompositionEnabled WinAPI_DwmQueryThumbnailSourceSize WinAPI_DwmRegisterThumbnail WinAPI_DwmSetColorizationParameters WinAPI_DwmSetIconicLivePreviewBitmap WinAPI_DwmSetIconicThumbnail WinAPI_DwmSetWindowAttribute WinAPI_DwmUnregisterThumbnail WinAPI_DwmUpdateThumbnailProperties WinAPI_DWordToFloat WinAPI_DWordToInt WinAPI_EjectMedia WinAPI_Ellipse WinAPI_EmptyWorkingSet WinAPI_EnableWindow WinAPI_EncryptFile WinAPI_EncryptionDisable WinAPI_EndBufferedPaint WinAPI_EndDeferWindowPos WinAPI_EndPaint WinAPI_EndPath WinAPI_EndUpdateResource WinAPI_EnumChildProcess WinAPI_EnumChildWindows WinAPI_EnumDesktops WinAPI_EnumDesktopWindows WinAPI_EnumDeviceDrivers WinAPI_EnumDisplayDevices WinAPI_EnumDisplayMonitors WinAPI_EnumDisplaySettings WinAPI_EnumDllProc WinAPI_EnumFiles WinAPI_EnumFileStreams WinAPI_EnumFontFamilies WinAPI_EnumHardLinks WinAPI_EnumMRUList WinAPI_EnumPageFiles WinAPI_EnumProcessHandles WinAPI_EnumProcessModules WinAPI_EnumProcessThreads WinAPI_EnumProcessWindows WinAPI_EnumRawInputDevices WinAPI_EnumResourceLanguages WinAPI_EnumResourceNames WinAPI_EnumResourceTypes WinAPI_EnumSystemGeoID WinAPI_EnumSystemLocales WinAPI_EnumUILanguages WinAPI_EnumWindows WinAPI_EnumWindowsPopup WinAPI_EnumWindowStations WinAPI_EnumWindowsTop WinAPI_EqualMemory WinAPI_EqualRect WinAPI_EqualRgn WinAPI_ExcludeClipRect WinAPI_ExpandEnvironmentStrings WinAPI_ExtCreatePen WinAPI_ExtCreateRegion WinAPI_ExtFloodFill WinAPI_ExtractIcon WinAPI_ExtractIconEx WinAPI_ExtSelectClipRgn WinAPI_FatalAppExit WinAPI_FatalExit WinAPI_FileEncryptionStatus WinAPI_FileExists WinAPI_FileIconInit WinAPI_FileInUse WinAPI_FillMemory WinAPI_FillPath WinAPI_FillRect WinAPI_FillRgn WinAPI_FindClose WinAPI_FindCloseChangeNotification WinAPI_FindExecutable WinAPI_FindFirstChangeNotification WinAPI_FindFirstFile WinAPI_FindFirstFileName WinAPI_FindFirstStream WinAPI_FindNextChangeNotification WinAPI_FindNextFile WinAPI_FindNextFileName WinAPI_FindNextStream WinAPI_FindResource WinAPI_FindResourceEx WinAPI_FindTextDlg WinAPI_FindWindow WinAPI_FlashWindow WinAPI_FlashWindowEx WinAPI_FlattenPath WinAPI_FloatToDWord WinAPI_FloatToInt WinAPI_FlushFileBuffers WinAPI_FlushFRBuffer WinAPI_FlushViewOfFile WinAPI_FormatDriveDlg WinAPI_FormatMessage WinAPI_FrameRect WinAPI_FrameRgn WinAPI_FreeLibrary WinAPI_FreeMemory WinAPI_FreeMRUList WinAPI_FreeResource WinAPI_GdiComment WinAPI_GetActiveWindow WinAPI_GetAllUsersProfileDirectory WinAPI_GetAncestor WinAPI_GetApplicationRestartSettings WinAPI_GetArcDirection WinAPI_GetAsyncKeyState WinAPI_GetBinaryType WinAPI_GetBitmapBits WinAPI_GetBitmapDimension WinAPI_GetBitmapDimensionEx WinAPI_GetBkColor WinAPI_GetBkMode WinAPI_GetBoundsRect WinAPI_GetBrushOrg WinAPI_GetBufferedPaintBits WinAPI_GetBufferedPaintDC WinAPI_GetBufferedPaintTargetDC WinAPI_GetBufferedPaintTargetRect WinAPI_GetBValue WinAPI_GetCaretBlinkTime WinAPI_GetCaretPos WinAPI_GetCDType WinAPI_GetClassInfoEx WinAPI_GetClassLongEx WinAPI_GetClassName WinAPI_GetClientHeight WinAPI_GetClientRect WinAPI_GetClientWidth WinAPI_GetClipboardSequenceNumber WinAPI_GetClipBox WinAPI_GetClipCursor WinAPI_GetClipRgn WinAPI_GetColorAdjustment WinAPI_GetCompressedFileSize WinAPI_GetCompression WinAPI_GetConnectedDlg WinAPI_GetCurrentDirectory WinAPI_GetCurrentHwProfile WinAPI_GetCurrentObject WinAPI_GetCurrentPosition WinAPI_GetCurrentProcess WinAPI_GetCurrentProcessExplicitAppUserModelID WinAPI_GetCurrentProcessID WinAPI_GetCurrentThemeName WinAPI_GetCurrentThread WinAPI_GetCurrentThreadId WinAPI_GetCursor WinAPI_GetCursorInfo WinAPI_GetDateFormat WinAPI_GetDC WinAPI_GetDCEx WinAPI_GetDefaultPrinter WinAPI_GetDefaultUserProfileDirectory WinAPI_GetDesktopWindow WinAPI_GetDeviceCaps WinAPI_GetDeviceDriverBaseName WinAPI_GetDeviceDriverFileName WinAPI_GetDeviceGammaRamp WinAPI_GetDIBColorTable WinAPI_GetDIBits WinAPI_GetDiskFreeSpaceEx WinAPI_GetDlgCtrlID WinAPI_GetDlgItem WinAPI_GetDllDirectory WinAPI_GetDriveBusType WinAPI_GetDriveGeometryEx WinAPI_GetDriveNumber WinAPI_GetDriveType WinAPI_GetDurationFormat WinAPI_GetEffectiveClientRect WinAPI_GetEnhMetaFile WinAPI_GetEnhMetaFileBits WinAPI_GetEnhMetaFileDescription WinAPI_GetEnhMetaFileDimension WinAPI_GetEnhMetaFileHeader WinAPI_GetErrorMessage WinAPI_GetErrorMode WinAPI_GetExitCodeProcess WinAPI_GetExtended WinAPI_GetFileAttributes WinAPI_GetFileID WinAPI_GetFileInformationByHandle WinAPI_GetFileInformationByHandleEx WinAPI_GetFilePointerEx WinAPI_GetFileSizeEx WinAPI_GetFileSizeOnDisk WinAPI_GetFileTitle WinAPI_GetFileType WinAPI_GetFileVersionInfo WinAPI_GetFinalPathNameByHandle WinAPI_GetFinalPathNameByHandleEx WinAPI_GetFocus WinAPI_GetFontMemoryResourceInfo WinAPI_GetFontName WinAPI_GetFontResourceInfo WinAPI_GetForegroundWindow WinAPI_GetFRBuffer WinAPI_GetFullPathName WinAPI_GetGeoInfo WinAPI_GetGlyphOutline WinAPI_GetGraphicsMode WinAPI_GetGuiResources WinAPI_GetGUIThreadInfo WinAPI_GetGValue WinAPI_GetHandleInformation WinAPI_GetHGlobalFromStream WinAPI_GetIconDimension WinAPI_GetIconInfo WinAPI_GetIconInfoEx WinAPI_GetIdleTime WinAPI_GetKeyboardLayout WinAPI_GetKeyboardLayoutList WinAPI_GetKeyboardState WinAPI_GetKeyboardType WinAPI_GetKeyNameText WinAPI_GetKeyState WinAPI_GetLastActivePopup WinAPI_GetLastError WinAPI_GetLastErrorMessage WinAPI_GetLayeredWindowAttributes WinAPI_GetLocaleInfo WinAPI_GetLogicalDrives WinAPI_GetMapMode WinAPI_GetMemorySize WinAPI_GetMessageExtraInfo WinAPI_GetModuleFileNameEx WinAPI_GetModuleHandle WinAPI_GetModuleHandleEx WinAPI_GetModuleInformation WinAPI_GetMonitorInfo WinAPI_GetMousePos WinAPI_GetMousePosX WinAPI_GetMousePosY WinAPI_GetMUILanguage WinAPI_GetNumberFormat WinAPI_GetObject WinAPI_GetObjectID WinAPI_GetObjectInfoByHandle WinAPI_GetObjectNameByHandle WinAPI_GetObjectType WinAPI_GetOpenFileName WinAPI_GetOutlineTextMetrics WinAPI_GetOverlappedResult WinAPI_GetParent WinAPI_GetParentProcess WinAPI_GetPerformanceInfo WinAPI_GetPEType WinAPI_GetPhysicallyInstalledSystemMemory WinAPI_GetPixel WinAPI_GetPolyFillMode WinAPI_GetPosFromRect WinAPI_GetPriorityClass WinAPI_GetProcAddress WinAPI_GetProcessAffinityMask WinAPI_GetProcessCommandLine WinAPI_GetProcessFileName WinAPI_GetProcessHandleCount WinAPI_GetProcessID WinAPI_GetProcessIoCounters WinAPI_GetProcessMemoryInfo WinAPI_GetProcessName WinAPI_GetProcessShutdownParameters WinAPI_GetProcessTimes WinAPI_GetProcessUser WinAPI_GetProcessWindowStation WinAPI_GetProcessWorkingDirectory WinAPI_GetProfilesDirectory WinAPI_GetPwrCapabilities WinAPI_GetRawInputBuffer WinAPI_GetRawInputBufferLength WinAPI_GetRawInputData WinAPI_GetRawInputDeviceInfo WinAPI_GetRegionData WinAPI_GetRegisteredRawInputDevices WinAPI_GetRegKeyNameByHandle WinAPI_GetRgnBox WinAPI_GetROP2 WinAPI_GetRValue WinAPI_GetSaveFileName WinAPI_GetShellWindow WinAPI_GetStartupInfo WinAPI_GetStdHandle WinAPI_GetStockObject WinAPI_GetStretchBltMode WinAPI_GetString WinAPI_GetSysColor WinAPI_GetSysColorBrush WinAPI_GetSystemDefaultLangID WinAPI_GetSystemDefaultLCID WinAPI_GetSystemDefaultUILanguage WinAPI_GetSystemDEPPolicy WinAPI_GetSystemInfo WinAPI_GetSystemMetrics WinAPI_GetSystemPowerStatus WinAPI_GetSystemTimes WinAPI_GetSystemWow64Directory WinAPI_GetTabbedTextExtent WinAPI_GetTempFileName WinAPI_GetTextAlign WinAPI_GetTextCharacterExtra WinAPI_GetTextColor WinAPI_GetTextExtentPoint32 WinAPI_GetTextFace WinAPI_GetTextMetrics WinAPI_GetThemeAppProperties WinAPI_GetThemeBackgroundContentRect WinAPI_GetThemeBackgroundExtent WinAPI_GetThemeBackgroundRegion WinAPI_GetThemeBitmap WinAPI_GetThemeBool WinAPI_GetThemeColor WinAPI_GetThemeDocumentationProperty WinAPI_GetThemeEnumValue WinAPI_GetThemeFilename WinAPI_GetThemeFont WinAPI_GetThemeInt WinAPI_GetThemeMargins WinAPI_GetThemeMetric WinAPI_GetThemePartSize WinAPI_GetThemePosition WinAPI_GetThemePropertyOrigin WinAPI_GetThemeRect WinAPI_GetThemeString WinAPI_GetThemeSysBool WinAPI_GetThemeSysColor WinAPI_GetThemeSysColorBrush WinAPI_GetThemeSysFont WinAPI_GetThemeSysInt WinAPI_GetThemeSysSize WinAPI_GetThemeSysString WinAPI_GetThemeTextExtent WinAPI_GetThemeTextMetrics WinAPI_GetThemeTransitionDuration WinAPI_GetThreadDesktop WinAPI_GetThreadErrorMode WinAPI_GetThreadLocale WinAPI_GetThreadUILanguage WinAPI_GetTickCount WinAPI_GetTickCount64 WinAPI_GetTimeFormat WinAPI_GetTopWindow WinAPI_GetUDFColorMode WinAPI_GetUpdateRect WinAPI_GetUpdateRgn WinAPI_GetUserDefaultLangID WinAPI_GetUserDefaultLCID WinAPI_GetUserDefaultUILanguage WinAPI_GetUserGeoID WinAPI_GetUserObjectInformation WinAPI_GetVersion WinAPI_GetVersionEx WinAPI_GetVolumeInformation WinAPI_GetVolumeInformationByHandle WinAPI_GetVolumeNameForVolumeMountPoint WinAPI_GetWindow WinAPI_GetWindowDC WinAPI_GetWindowDisplayAffinity WinAPI_GetWindowExt WinAPI_GetWindowFileName WinAPI_GetWindowHeight WinAPI_GetWindowInfo WinAPI_GetWindowLong WinAPI_GetWindowOrg WinAPI_GetWindowPlacement WinAPI_GetWindowRect WinAPI_GetWindowRgn WinAPI_GetWindowRgnBox WinAPI_GetWindowSubclass WinAPI_GetWindowText WinAPI_GetWindowTheme WinAPI_GetWindowThreadProcessId WinAPI_GetWindowWidth WinAPI_GetWorkArea WinAPI_GetWorldTransform WinAPI_GetXYFromPoint WinAPI_GlobalMemoryStatus WinAPI_GradientFill WinAPI_GUIDFromString WinAPI_GUIDFromStringEx WinAPI_HashData WinAPI_HashString WinAPI_HiByte WinAPI_HideCaret WinAPI_HiDWord WinAPI_HiWord WinAPI_InflateRect WinAPI_InitMUILanguage WinAPI_InProcess WinAPI_IntersectClipRect WinAPI_IntersectRect WinAPI_IntToDWord WinAPI_IntToFloat WinAPI_InvalidateRect WinAPI_InvalidateRgn WinAPI_InvertANDBitmap WinAPI_InvertColor WinAPI_InvertRect WinAPI_InvertRgn WinAPI_IOCTL WinAPI_IsAlphaBitmap WinAPI_IsBadCodePtr WinAPI_IsBadReadPtr WinAPI_IsBadStringPtr WinAPI_IsBadWritePtr WinAPI_IsChild WinAPI_IsClassName WinAPI_IsDoorOpen WinAPI_IsElevated WinAPI_IsHungAppWindow WinAPI_IsIconic WinAPI_IsInternetConnected WinAPI_IsLoadKBLayout WinAPI_IsMemory WinAPI_IsNameInExpression WinAPI_IsNetworkAlive WinAPI_IsPathShared WinAPI_IsProcessInJob WinAPI_IsProcessorFeaturePresent WinAPI_IsRectEmpty WinAPI_IsThemeActive WinAPI_IsThemeBackgroundPartiallyTransparent WinAPI_IsThemePartDefined WinAPI_IsValidLocale WinAPI_IsWindow WinAPI_IsWindowEnabled WinAPI_IsWindowUnicode WinAPI_IsWindowVisible WinAPI_IsWow64Process WinAPI_IsWritable WinAPI_IsZoomed WinAPI_Keybd_Event WinAPI_KillTimer WinAPI_LineDDA WinAPI_LineTo WinAPI_LoadBitmap WinAPI_LoadCursor WinAPI_LoadCursorFromFile WinAPI_LoadIcon WinAPI_LoadIconMetric WinAPI_LoadIconWithScaleDown WinAPI_LoadImage WinAPI_LoadIndirectString WinAPI_LoadKeyboardLayout WinAPI_LoadLibrary WinAPI_LoadLibraryEx WinAPI_LoadMedia WinAPI_LoadResource WinAPI_LoadShell32Icon WinAPI_LoadString WinAPI_LoadStringEx WinAPI_LoByte WinAPI_LocalFree WinAPI_LockDevice WinAPI_LockFile WinAPI_LockResource WinAPI_LockWindowUpdate WinAPI_LockWorkStation WinAPI_LoDWord WinAPI_LongMid WinAPI_LookupIconIdFromDirectoryEx WinAPI_LoWord WinAPI_LPtoDP WinAPI_MAKELANGID WinAPI_MAKELCID WinAPI_MakeLong WinAPI_MakeQWord WinAPI_MakeWord WinAPI_MapViewOfFile WinAPI_MapVirtualKey WinAPI_MaskBlt WinAPI_MessageBeep WinAPI_MessageBoxCheck WinAPI_MessageBoxIndirect WinAPI_MirrorIcon WinAPI_ModifyWorldTransform WinAPI_MonitorFromPoint WinAPI_MonitorFromRect WinAPI_MonitorFromWindow WinAPI_Mouse_Event WinAPI_MoveFileEx WinAPI_MoveMemory WinAPI_MoveTo WinAPI_MoveToEx WinAPI_MoveWindow WinAPI_MsgBox WinAPI_MulDiv WinAPI_MultiByteToWideChar WinAPI_MultiByteToWideCharEx WinAPI_NtStatusToDosError WinAPI_OemToChar WinAPI_OffsetClipRgn WinAPI_OffsetPoints WinAPI_OffsetRect WinAPI_OffsetRgn WinAPI_OffsetWindowOrg WinAPI_OpenDesktop WinAPI_OpenFileById WinAPI_OpenFileDlg WinAPI_OpenFileMapping WinAPI_OpenIcon WinAPI_OpenInputDesktop WinAPI_OpenJobObject WinAPI_OpenMutex WinAPI_OpenProcess WinAPI_OpenProcessToken WinAPI_OpenSemaphore WinAPI_OpenThemeData WinAPI_OpenWindowStation WinAPI_PageSetupDlg WinAPI_PaintDesktop WinAPI_PaintRgn WinAPI_ParseURL WinAPI_ParseUserName WinAPI_PatBlt WinAPI_PathAddBackslash WinAPI_PathAddExtension WinAPI_PathAppend WinAPI_PathBuildRoot WinAPI_PathCanonicalize WinAPI_PathCommonPrefix WinAPI_PathCompactPath WinAPI_PathCompactPathEx WinAPI_PathCreateFromUrl WinAPI_PathFindExtension WinAPI_PathFindFileName WinAPI_PathFindNextComponent WinAPI_PathFindOnPath WinAPI_PathGetArgs WinAPI_PathGetCharType WinAPI_PathGetDriveNumber WinAPI_PathIsContentType WinAPI_PathIsDirectory WinAPI_PathIsDirectoryEmpty WinAPI_PathIsExe WinAPI_PathIsFileSpec WinAPI_PathIsLFNFileSpec WinAPI_PathIsRelative WinAPI_PathIsRoot WinAPI_PathIsSameRoot WinAPI_PathIsSystemFolder WinAPI_PathIsUNC WinAPI_PathIsUNCServer WinAPI_PathIsUNCServerShare WinAPI_PathMakeSystemFolder WinAPI_PathMatchSpec WinAPI_PathParseIconLocation WinAPI_PathRelativePathTo WinAPI_PathRemoveArgs WinAPI_PathRemoveBackslash WinAPI_PathRemoveExtension WinAPI_PathRemoveFileSpec WinAPI_PathRenameExtension WinAPI_PathSearchAndQualify WinAPI_PathSkipRoot WinAPI_PathStripPath WinAPI_PathStripToRoot WinAPI_PathToRegion WinAPI_PathUndecorate WinAPI_PathUnExpandEnvStrings WinAPI_PathUnmakeSystemFolder WinAPI_PathUnquoteSpaces WinAPI_PathYetAnotherMakeUniqueName WinAPI_PickIconDlg WinAPI_PlayEnhMetaFile WinAPI_PlaySound WinAPI_PlgBlt WinAPI_PointFromRect WinAPI_PolyBezier WinAPI_PolyBezierTo WinAPI_PolyDraw WinAPI_Polygon WinAPI_PostMessage WinAPI_PrimaryLangId WinAPI_PrintDlg WinAPI_PrintDlgEx WinAPI_PrintWindow WinAPI_ProgIDFromCLSID WinAPI_PtInRect WinAPI_PtInRectEx WinAPI_PtInRegion WinAPI_PtVisible WinAPI_QueryDosDevice WinAPI_QueryInformationJobObject WinAPI_QueryPerformanceCounter WinAPI_QueryPerformanceFrequency WinAPI_RadialGradientFill WinAPI_ReadDirectoryChanges WinAPI_ReadFile WinAPI_ReadProcessMemory WinAPI_Rectangle WinAPI_RectInRegion WinAPI_RectIsEmpty WinAPI_RectVisible WinAPI_RedrawWindow WinAPI_RegCloseKey WinAPI_RegConnectRegistry WinAPI_RegCopyTree WinAPI_RegCopyTreeEx WinAPI_RegCreateKey WinAPI_RegDeleteEmptyKey WinAPI_RegDeleteKey WinAPI_RegDeleteKeyValue WinAPI_RegDeleteTree WinAPI_RegDeleteTreeEx WinAPI_RegDeleteValue WinAPI_RegDisableReflectionKey WinAPI_RegDuplicateHKey WinAPI_RegEnableReflectionKey WinAPI_RegEnumKey WinAPI_RegEnumValue WinAPI_RegFlushKey WinAPI_RegisterApplicationRestart WinAPI_RegisterClass WinAPI_RegisterClassEx WinAPI_RegisterHotKey WinAPI_RegisterPowerSettingNotification WinAPI_RegisterRawInputDevices WinAPI_RegisterShellHookWindow WinAPI_RegisterWindowMessage WinAPI_RegLoadMUIString WinAPI_RegNotifyChangeKeyValue WinAPI_RegOpenKey WinAPI_RegQueryInfoKey WinAPI_RegQueryLastWriteTime WinAPI_RegQueryMultipleValues WinAPI_RegQueryReflectionKey WinAPI_RegQueryValue WinAPI_RegRestoreKey WinAPI_RegSaveKey WinAPI_RegSetValue WinAPI_ReleaseCapture WinAPI_ReleaseDC WinAPI_ReleaseMutex WinAPI_ReleaseSemaphore WinAPI_ReleaseStream WinAPI_RemoveClipboardFormatListener WinAPI_RemoveDirectory WinAPI_RemoveFontMemResourceEx WinAPI_RemoveFontResourceEx WinAPI_RemoveWindowSubclass WinAPI_ReOpenFile WinAPI_ReplaceFile WinAPI_ReplaceTextDlg WinAPI_ResetEvent WinAPI_RestartDlg WinAPI_RestoreDC WinAPI_RGB WinAPI_RotatePoints WinAPI_RoundRect WinAPI_SaveDC WinAPI_SaveFileDlg WinAPI_SaveHBITMAPToFile WinAPI_SaveHICONToFile WinAPI_ScaleWindowExt WinAPI_ScreenToClient WinAPI_SearchPath WinAPI_SelectClipPath WinAPI_SelectClipRgn WinAPI_SelectObject WinAPI_SendMessageTimeout WinAPI_SetActiveWindow WinAPI_SetArcDirection WinAPI_SetBitmapBits WinAPI_SetBitmapDimensionEx WinAPI_SetBkColor WinAPI_SetBkMode WinAPI_SetBoundsRect WinAPI_SetBrushOrg WinAPI_SetCapture WinAPI_SetCaretBlinkTime WinAPI_SetCaretPos WinAPI_SetClassLongEx WinAPI_SetColorAdjustment WinAPI_SetCompression WinAPI_SetCurrentDirectory WinAPI_SetCurrentProcessExplicitAppUserModelID WinAPI_SetCursor WinAPI_SetDCBrushColor WinAPI_SetDCPenColor WinAPI_SetDefaultPrinter WinAPI_SetDeviceGammaRamp WinAPI_SetDIBColorTable WinAPI_SetDIBits WinAPI_SetDIBitsToDevice WinAPI_SetDllDirectory WinAPI_SetEndOfFile WinAPI_SetEnhMetaFileBits WinAPI_SetErrorMode WinAPI_SetEvent WinAPI_SetFileAttributes WinAPI_SetFileInformationByHandleEx WinAPI_SetFilePointer WinAPI_SetFilePointerEx WinAPI_SetFileShortName WinAPI_SetFileValidData WinAPI_SetFocus WinAPI_SetFont WinAPI_SetForegroundWindow WinAPI_SetFRBuffer WinAPI_SetGraphicsMode WinAPI_SetHandleInformation WinAPI_SetInformationJobObject WinAPI_SetKeyboardLayout WinAPI_SetKeyboardState WinAPI_SetLastError WinAPI_SetLayeredWindowAttributes WinAPI_SetLocaleInfo WinAPI_SetMapMode WinAPI_SetMessageExtraInfo WinAPI_SetParent WinAPI_SetPixel WinAPI_SetPolyFillMode WinAPI_SetPriorityClass WinAPI_SetProcessAffinityMask WinAPI_SetProcessShutdownParameters WinAPI_SetProcessWindowStation WinAPI_SetRectRgn WinAPI_SetROP2 WinAPI_SetSearchPathMode WinAPI_SetStretchBltMode WinAPI_SetSysColors WinAPI_SetSystemCursor WinAPI_SetTextAlign WinAPI_SetTextCharacterExtra WinAPI_SetTextColor WinAPI_SetTextJustification WinAPI_SetThemeAppProperties WinAPI_SetThreadDesktop WinAPI_SetThreadErrorMode WinAPI_SetThreadExecutionState WinAPI_SetThreadLocale WinAPI_SetThreadUILanguage WinAPI_SetTimer WinAPI_SetUDFColorMode WinAPI_SetUserGeoID WinAPI_SetUserObjectInformation WinAPI_SetVolumeMountPoint WinAPI_SetWindowDisplayAffinity WinAPI_SetWindowExt WinAPI_SetWindowLong WinAPI_SetWindowOrg WinAPI_SetWindowPlacement WinAPI_SetWindowPos WinAPI_SetWindowRgn WinAPI_SetWindowsHookEx WinAPI_SetWindowSubclass WinAPI_SetWindowText WinAPI_SetWindowTheme WinAPI_SetWinEventHook WinAPI_SetWorldTransform WinAPI_SfcIsFileProtected WinAPI_SfcIsKeyProtected WinAPI_ShellAboutDlg WinAPI_ShellAddToRecentDocs WinAPI_ShellChangeNotify WinAPI_ShellChangeNotifyDeregister WinAPI_ShellChangeNotifyRegister WinAPI_ShellCreateDirectory WinAPI_ShellEmptyRecycleBin WinAPI_ShellExecute WinAPI_ShellExecuteEx WinAPI_ShellExtractAssociatedIcon WinAPI_ShellExtractIcon WinAPI_ShellFileOperation WinAPI_ShellFlushSFCache WinAPI_ShellGetFileInfo WinAPI_ShellGetIconOverlayIndex WinAPI_ShellGetImageList WinAPI_ShellGetKnownFolderIDList WinAPI_ShellGetKnownFolderPath WinAPI_ShellGetLocalizedName WinAPI_ShellGetPathFromIDList WinAPI_ShellGetSetFolderCustomSettings WinAPI_ShellGetSettings WinAPI_ShellGetSpecialFolderLocation WinAPI_ShellGetSpecialFolderPath WinAPI_ShellGetStockIconInfo WinAPI_ShellILCreateFromPath WinAPI_ShellNotifyIcon WinAPI_ShellNotifyIconGetRect WinAPI_ShellObjectProperties WinAPI_ShellOpenFolderAndSelectItems WinAPI_ShellOpenWithDlg WinAPI_ShellQueryRecycleBin WinAPI_ShellQueryUserNotificationState WinAPI_ShellRemoveLocalizedName WinAPI_ShellRestricted WinAPI_ShellSetKnownFolderPath WinAPI_ShellSetLocalizedName WinAPI_ShellSetSettings WinAPI_ShellStartNetConnectionDlg WinAPI_ShellUpdateImage WinAPI_ShellUserAuthenticationDlg WinAPI_ShellUserAuthenticationDlgEx WinAPI_ShortToWord WinAPI_ShowCaret WinAPI_ShowCursor WinAPI_ShowError WinAPI_ShowLastError WinAPI_ShowMsg WinAPI_ShowOwnedPopups WinAPI_ShowWindow WinAPI_ShutdownBlockReasonCreate WinAPI_ShutdownBlockReasonDestroy WinAPI_ShutdownBlockReasonQuery WinAPI_SizeOfResource WinAPI_StretchBlt WinAPI_StretchDIBits WinAPI_StrFormatByteSize WinAPI_StrFormatByteSizeEx WinAPI_StrFormatKBSize WinAPI_StrFromTimeInterval WinAPI_StringFromGUID WinAPI_StringLenA WinAPI_StringLenW WinAPI_StrLen WinAPI_StrokeAndFillPath WinAPI_StrokePath WinAPI_StructToArray WinAPI_SubLangId WinAPI_SubtractRect WinAPI_SwapDWord WinAPI_SwapQWord WinAPI_SwapWord WinAPI_SwitchColor WinAPI_SwitchDesktop WinAPI_SwitchToThisWindow WinAPI_SystemParametersInfo WinAPI_TabbedTextOut WinAPI_TerminateJobObject WinAPI_TerminateProcess WinAPI_TextOut WinAPI_TileWindows WinAPI_TrackMouseEvent WinAPI_TransparentBlt WinAPI_TwipsPerPixelX WinAPI_TwipsPerPixelY WinAPI_UnhookWindowsHookEx WinAPI_UnhookWinEvent WinAPI_UnionRect WinAPI_UnionStruct WinAPI_UniqueHardwareID WinAPI_UnloadKeyboardLayout WinAPI_UnlockFile WinAPI_UnmapViewOfFile WinAPI_UnregisterApplicationRestart WinAPI_UnregisterClass WinAPI_UnregisterHotKey WinAPI_UnregisterPowerSettingNotification WinAPI_UpdateLayeredWindow WinAPI_UpdateLayeredWindowEx WinAPI_UpdateLayeredWindowIndirect WinAPI_UpdateResource WinAPI_UpdateWindow WinAPI_UrlApplyScheme WinAPI_UrlCanonicalize WinAPI_UrlCombine WinAPI_UrlCompare WinAPI_UrlCreateFromPath WinAPI_UrlFixup WinAPI_UrlGetPart WinAPI_UrlHash WinAPI_UrlIs WinAPI_UserHandleGrantAccess WinAPI_ValidateRect WinAPI_ValidateRgn WinAPI_VerQueryRoot WinAPI_VerQueryValue WinAPI_VerQueryValueEx WinAPI_WaitForInputIdle WinAPI_WaitForMultipleObjects WinAPI_WaitForSingleObject WinAPI_WideCharToMultiByte WinAPI_WidenPath WinAPI_WindowFromDC WinAPI_WindowFromPoint WinAPI_WordToShort WinAPI_Wow64EnableWow64FsRedirection WinAPI_WriteConsole WinAPI_WriteFile WinAPI_WriteProcessMemory WinAPI_ZeroMemory WinNet_AddConnection WinNet_AddConnection2 WinNet_AddConnection3 WinNet_CancelConnection WinNet_CancelConnection2 WinNet_CloseEnum WinNet_ConnectionDialog WinNet_ConnectionDialog1 WinNet_DisconnectDialog WinNet_DisconnectDialog1 WinNet_EnumResource WinNet_GetConnection WinNet_GetConnectionPerformance WinNet_GetLastError WinNet_GetNetworkInformation WinNet_GetProviderName WinNet_GetResourceInformation WinNet_GetResourceParent WinNet_GetUniversalName WinNet_GetUser WinNet_OpenEnum WinNet_RestoreConnection WinNet_UseConnection Word_Create Word_DocAdd Word_DocAttach Word_DocClose Word_DocExport Word_DocFind Word_DocFindReplace Word_DocGet Word_DocLinkAdd Word_DocLinkGet Word_DocOpen Word_DocPictureAdd Word_DocPrint Word_DocRangeSet Word_DocSave Word_DocSaveAs Word_DocTableRead Word_DocTableWrite Word_Quit",e={
+constant:"SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five quote empty one true return cr linefeed right backslash null seven tab three two RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK",operator:"div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within contains ends with begins the keys of keys",built_in:"put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg avgDev base64Decode base64Encode baseConvert binaryDecode binaryEncode byteOffset byteToNum cachedURL cachedURLs charToNum cipherNames codepointOffset codepointProperty codepointToNum codeunitOffset commandNames compound compress constantNames cos date dateFormat decompress directories diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames geometricMean global globals hasMemory harmonicMean hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge millisec millisecs millisecond milliseconds min monthNames nativeCharToNum normalizeText num number numToByte numToChar numToCodepoint numToNativeChar offset open openfiles openProcesses openProcessIDs openSockets paragraphOffset paramCount param params peerAddress pendingMessages platform popStdDev populationStandardDeviation populationVariance popVariance processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLCreateTreeFromFileWithNamespaces revXMLCreateTreeWithNamespaces revXMLDataFromXPathQuery revXMLEvaluateXPath revXMLFirstChild revXMLMatchingNode revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_Execute revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sampVariance sec secs seconds sentenceOffset sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound stdDev sum sysError systemVersion tan tempName textDecode textEncode tick ticks time to tokenOffset toLower toUpper transpose truewordOffset trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus uuid value variableNames variance version waitDepth weekdayNames wordOffset xsltApplyStylesheet xsltApplyStylesheetFromFile xsltLoadStylesheet xsltLoadStylesheetFromFile add breakpoint cancel clear local variable file word line folder directory URL close socket process combine constant convert create new alias folder directory decrypt delete variable word line folder directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime libURLSetStatusCallback load multiply socket prepare process post seek rel relative read from process rename replace require resetAll resolve revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split start stop subtract union unload wait write"},contains:[b,{className:"keyword",begin:"\\bend\\sif\\b"},{className:"function",beginKeywords:"function",end:"$",contains:[b,e,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE,d]},{className:"function",begin:"\\bend\\s+",end:"$",keywords:"end",contains:[e,d]},{className:"command",beginKeywords:"command on",end:"$",contains:[b,e,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE,d]},{className:"preprocessor",variants:[{begin:"<\\?(rev|lc|livecode)",relevance:10},{begin:"<\\?"},{begin:"\\?>"}]},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE,d].concat(c),illegal:";$|^\\[|^="}}),a.registerLanguage("livescript",function(a){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger case default function var with then unless until loop of by when and or is isnt not it that otherwise from to til fallthrough super case default function var void const let enum export import native __hasProp __extends __slice __bind __indexOf",literal:"true false null undefined yes no on off it that void",built_in:"npm require console print module global window document"},c="[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*",d=a.inherit(a.TITLE_MODE,{begin:c}),e={className:"subst",begin:/#\{/,end:/}/,keywords:b},f={className:"subst",begin:/#[A-Za-z$_]/,end:/(?:\-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/,keywords:b},g=[a.BINARY_NUMBER_MODE,{className:"number",begin:"(\\b0[xX][a-fA-F0-9_]+)|(\\b\\d(\\d|_\\d)*(\\.(\\d(\\d|_\\d)*)?)?(_*[eE]([-+]\\d(_\\d|\\d)*)?)?[_a-z]*)",relevance:0,starts:{end:"(\\s*/)?",relevance:0}},{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[a.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[a.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[a.BACKSLASH_ESCAPE,e,f]},{begin:/"/,end:/"/,contains:[a.BACKSLASH_ESCAPE,e,f]},{begin:/\\/,end:/(\s|$)/,excludeEnd:!0}]},{className:"pi",variants:[{begin:"//",end:"//[gim]*",contains:[e,a.HASH_COMMENT_MODE]},{begin:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{className:"property",begin:"@"+c},{begin:"``",end:"``",excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"}];e.contains=g;var h={className:"params",begin:"\\(",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:b,contains:["self"].concat(g)}]};return{aliases:["ls"],keywords:b,illegal:/\/\*/,contains:g.concat([a.COMMENT("\\/\\*","\\*\\/"),a.HASH_COMMENT_MODE,{className:"function",contains:[d,h],returnBegin:!0,variants:[{begin:"("+c+"\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B\\->\\*?",end:"\\->\\*?"},{begin:"("+c+"\\s*(?:=|:=)\\s*)?!?(\\(.*\\))?\\s*\\B[-~]{1,2}>\\*?",end:"[-~]{1,2}>\\*?"},{begin:"("+c+"\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B!?[-~]{1,2}>\\*?",end:"!?[-~]{1,2}>\\*?"}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[d]},d]},{className:"attribute",begin:c+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}),a.registerLanguage("lua",function(a){var b="\\[=*\\[",c="\\]=*\\]",d={begin:b,end:c,contains:["self"]},e=[a.COMMENT("--(?!"+b+")","$"),a.COMMENT("--"+b,c,{contains:[d],relevance:10})];return{lexemes:a.UNDERSCORE_IDENT_RE,keywords:{keyword:"and break do else elseif end false for if in local nil not or repeat return then true until while",built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table"},contains:e.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[a.inherit(a.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:e}].concat(e)},a.C_NUMBER_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"string",begin:b,end:c,contains:[d],relevance:5}])}}),a.registerLanguage("makefile",function(a){var b={className:"variable",begin:/\$\(/,end:/\)/,contains:[a.BACKSLASH_ESCAPE]};return{aliases:["mk","mak"],contains:[a.HASH_COMMENT_MODE,{begin:/^\w+\s*\W*=/,returnBegin:!0,relevance:0,starts:{className:"constant",end:/\s*\W*=/,excludeEnd:!0,starts:{end:/$/,relevance:0,contains:[b]}}},{className:"title",begin:/^[\w]+:\s*$/},{className:"phony",begin:/^\.PHONY:/,end:/$/,keywords:".PHONY",lexemes:/[\.\w]+/},{begin:/^\t+/,end:/$/,relevance:0,contains:[a.QUOTE_STRING_MODE,b]}]}}),a.registerLanguage("mathematica",function(a){return{aliases:["mma"],lexemes:"(\\$|\\b)"+a.IDENT_RE+"\\b",keywords:"AbelianGroup Abort AbortKernels AbortProtect Above Abs Absolute AbsoluteCorrelation AbsoluteCorrelationFunction AbsoluteCurrentValue AbsoluteDashing AbsoluteFileName AbsoluteOptions AbsolutePointSize AbsoluteThickness AbsoluteTime AbsoluteTiming AccountingForm Accumulate Accuracy AccuracyGoal ActionDelay ActionMenu ActionMenuBox ActionMenuBoxOptions Active ActiveItem ActiveStyle AcyclicGraphQ AddOnHelpPath AddTo AdjacencyGraph AdjacencyList AdjacencyMatrix AdjustmentBox AdjustmentBoxOptions AdjustTimeSeriesForecast AffineTransform After AiryAi AiryAiPrime AiryAiZero AiryBi AiryBiPrime AiryBiZero AlgebraicIntegerQ AlgebraicNumber AlgebraicNumberDenominator AlgebraicNumberNorm AlgebraicNumberPolynomial AlgebraicNumberTrace AlgebraicRules AlgebraicRulesData Algebraics AlgebraicUnitQ Alignment AlignmentMarker AlignmentPoint All AllowedDimensions AllowGroupClose AllowInlineCells AllowKernelInitialization AllowReverseGroupClose AllowScriptLevelChange AlphaChannel AlternatingGroup AlternativeHypothesis Alternatives AmbientLight Analytic AnchoredSearch And AndersonDarlingTest AngerJ AngleBracket AngularGauge Animate AnimationCycleOffset AnimationCycleRepetitions AnimationDirection AnimationDisplayTime AnimationRate AnimationRepetitions AnimationRunning Animator AnimatorBox AnimatorBoxOptions AnimatorElements Annotation Annuity AnnuityDue Antialiasing Antisymmetric Apart ApartSquareFree Appearance AppearanceElements AppellF1 Append AppendTo Apply ArcCos ArcCosh ArcCot ArcCoth ArcCsc ArcCsch ArcSec ArcSech ArcSin ArcSinDistribution ArcSinh ArcTan ArcTanh Arg ArgMax ArgMin ArgumentCountQ ARIMAProcess ArithmeticGeometricMean ARMAProcess ARProcess Array ArrayComponents ArrayDepth ArrayFlatten ArrayPad ArrayPlot ArrayQ ArrayReshape ArrayRules Arrays Arrow Arrow3DBox ArrowBox Arrowheads AspectRatio AspectRatioFixed Assert Assuming Assumptions AstronomicalData Asynchronous AsynchronousTaskObject AsynchronousTasks AtomQ Attributes AugmentedSymmetricPolynomial AutoAction AutoDelete AutoEvaluateEvents AutoGeneratedPackage AutoIndent AutoIndentSpacings AutoItalicWords AutoloadPath AutoMatch Automatic AutomaticImageSize AutoMultiplicationSymbol AutoNumberFormatting AutoOpenNotebooks AutoOpenPalettes AutorunSequencing AutoScaling AutoScroll AutoSpacing AutoStyleOptions AutoStyleWords Axes AxesEdge AxesLabel AxesOrigin AxesStyle Axis BabyMonsterGroupB Back Background BackgroundTasksSettings Backslash Backsubstitution Backward Band BandpassFilter BandstopFilter BarabasiAlbertGraphDistribution BarChart BarChart3D BarLegend BarlowProschanImportance BarnesG BarOrigin BarSpacing BartlettHannWindow BartlettWindow BaseForm Baseline BaselinePosition BaseStyle BatesDistribution BattleLemarieWavelet Because BeckmannDistribution Beep Before Begin BeginDialogPacket BeginFrontEndInteractionPacket BeginPackage BellB BellY Below BenfordDistribution BeniniDistribution BenktanderGibratDistribution BenktanderWeibullDistribution BernoulliB BernoulliDistribution BernoulliGraphDistribution BernoulliProcess BernsteinBasis BesselFilterModel BesselI BesselJ BesselJZero BesselK BesselY BesselYZero Beta BetaBinomialDistribution BetaDistribution BetaNegativeBinomialDistribution BetaPrimeDistribution BetaRegularized BetweennessCentrality BezierCurve BezierCurve3DBox BezierCurve3DBoxOptions BezierCurveBox BezierCurveBoxOptions BezierFunction BilateralFilter Binarize BinaryFormat BinaryImageQ BinaryRead BinaryReadList BinaryWrite BinCounts BinLists Binomial BinomialDistribution BinomialProcess BinormalDistribution BiorthogonalSplineWavelet BipartiteGraphQ BirnbaumImportance BirnbaumSaundersDistribution BitAnd BitClear BitGet BitLength BitNot BitOr BitSet BitShiftLeft BitShiftRight BitXor Black BlackmanHarrisWindow BlackmanNuttallWindow BlackmanWindow Blank BlankForm BlankNullSequence BlankSequence Blend Block BlockRandom BlomqvistBeta BlomqvistBetaTest Blue Blur BodePlot BohmanWindow Bold Bookmarks Boole BooleanConsecutiveFunction BooleanConvert BooleanCountingFunction BooleanFunction BooleanGraph BooleanMaxterms BooleanMinimize BooleanMinterms Booleans BooleanTable BooleanVariables BorderDimensions BorelTannerDistribution Bottom BottomHatTransform BoundaryStyle Bounds Box BoxBaselineShift BoxData BoxDimensions Boxed Boxes BoxForm BoxFormFormatTypes BoxFrame BoxID BoxMargins BoxMatrix BoxRatios BoxRotation BoxRotationPoint BoxStyle BoxWhiskerChart Bra BracketingBar BraKet BrayCurtisDistance BreadthFirstScan Break Brown BrownForsytheTest BrownianBridgeProcess BrowserCategory BSplineBasis BSplineCurve BSplineCurve3DBox BSplineCurveBox BSplineCurveBoxOptions BSplineFunction BSplineSurface BSplineSurface3DBox BubbleChart BubbleChart3D BubbleScale BubbleSizes BulletGauge BusinessDayQ ButterflyGraph ButterworthFilterModel Button ButtonBar ButtonBox ButtonBoxOptions ButtonCell ButtonContents ButtonData ButtonEvaluator ButtonExpandable ButtonFrame ButtonFunction ButtonMargins ButtonMinHeight ButtonNote ButtonNotebook ButtonSource ButtonStyle ButtonStyleMenuListing Byte ByteCount ByteOrdering C CachedValue CacheGraphics CalendarData CalendarType CallPacket CanberraDistance Cancel CancelButton CandlestickChart Cap CapForm CapitalDifferentialD CardinalBSplineBasis CarmichaelLambda Cases Cashflow Casoratian Catalan CatalanNumber Catch CauchyDistribution CauchyWindow CayleyGraph CDF CDFDeploy CDFInformation CDFWavelet Ceiling Cell CellAutoOverwrite CellBaseline CellBoundingBox CellBracketOptions CellChangeTimes CellContents CellContext CellDingbat CellDynamicExpression CellEditDuplicate CellElementsBoundingBox CellElementSpacings CellEpilog CellEvaluationDuplicate CellEvaluationFunction CellEventActions CellFrame CellFrameColor CellFrameLabelMargins CellFrameLabels CellFrameMargins CellGroup CellGroupData CellGrouping CellGroupingRules CellHorizontalScrolling CellID CellLabel CellLabelAutoDelete CellLabelMargins CellLabelPositioning CellMargins CellObject CellOpen CellPrint CellProlog Cells CellSize CellStyle CellTags CellularAutomaton CensoredDistribution Censoring Center CenterDot CentralMoment CentralMomentGeneratingFunction CForm ChampernowneNumber ChanVeseBinarize Character CharacterEncoding CharacterEncodingsPath CharacteristicFunction CharacteristicPolynomial CharacterRange Characters ChartBaseStyle ChartElementData ChartElementDataFunction ChartElementFunction ChartElements ChartLabels ChartLayout ChartLegends ChartStyle Chebyshev1FilterModel Chebyshev2FilterModel ChebyshevDistance ChebyshevT ChebyshevU Check CheckAbort CheckAll Checkbox CheckboxBar CheckboxBox CheckboxBoxOptions ChemicalData ChessboardDistance ChiDistribution ChineseRemainder ChiSquareDistribution ChoiceButtons ChoiceDialog CholeskyDecomposition Chop Circle CircleBox CircleDot CircleMinus CirclePlus CircleTimes CirculantGraph CityData Clear ClearAll ClearAttributes ClearSystemCache ClebschGordan ClickPane Clip ClipboardNotebook ClipFill ClippingStyle ClipPlanes ClipRange Clock ClockGauge ClockwiseContourIntegral Close Closed CloseKernels ClosenessCentrality Closing ClosingAutoSave ClosingEvent ClusteringComponents CMYKColor Coarse Coefficient CoefficientArrays CoefficientDomain CoefficientList CoefficientRules CoifletWavelet Collect Colon ColonForm ColorCombine ColorConvert ColorData ColorDataFunction ColorFunction ColorFunctionScaling Colorize ColorNegate ColorOutput ColorProfileData ColorQuantize ColorReplace ColorRules ColorSelectorSettings ColorSeparate ColorSetter ColorSetterBox ColorSetterBoxOptions ColorSlider ColorSpace Column ColumnAlignments ColumnBackgrounds ColumnForm ColumnLines ColumnsEqual ColumnSpacings ColumnWidths CommonDefaultFormatTypes Commonest CommonestFilter CommonUnits CommunityBoundaryStyle CommunityGraphPlot CommunityLabels CommunityRegionStyle CompatibleUnitQ CompilationOptions CompilationTarget Compile Compiled CompiledFunction Complement CompleteGraph CompleteGraphQ CompleteKaryTree CompletionsListPacket Complex Complexes ComplexExpand ComplexInfinity ComplexityFunction ComponentMeasurements ComponentwiseContextMenu Compose ComposeList ComposeSeries Composition CompoundExpression CompoundPoissonDistribution CompoundPoissonProcess CompoundRenewalProcess Compress CompressedData Condition ConditionalExpression Conditioned Cone ConeBox ConfidenceLevel ConfidenceRange ConfidenceTransform ConfigurationPath Congruent Conjugate ConjugateTranspose Conjunction Connect ConnectedComponents ConnectedGraphQ ConnesWindow ConoverTest ConsoleMessage ConsoleMessagePacket ConsolePrint Constant ConstantArray Constants ConstrainedMax ConstrainedMin ContentPadding ContentsBoundingBox ContentSelectable ContentSize Context ContextMenu Contexts ContextToFilename ContextToFileName Continuation Continue ContinuedFraction ContinuedFractionK ContinuousAction ContinuousMarkovProcess ContinuousTimeModelQ ContinuousWaveletData ContinuousWaveletTransform ContourDetect ContourGraphics ContourIntegral ContourLabels ContourLines ContourPlot ContourPlot3D Contours ContourShading ContourSmoothing ContourStyle ContraharmonicMean Control ControlActive ControlAlignment ControllabilityGramian ControllabilityMatrix ControllableDecomposition ControllableModelQ ControllerDuration ControllerInformation ControllerInformationData ControllerLinking ControllerManipulate ControllerMethod ControllerPath ControllerState ControlPlacement ControlsRendering ControlType Convergents ConversionOptions ConversionRules ConvertToBitmapPacket ConvertToPostScript ConvertToPostScriptPacket Convolve ConwayGroupCo1 ConwayGroupCo2 ConwayGroupCo3 CoordinateChartData CoordinatesToolOptions CoordinateTransform CoordinateTransformData CoprimeQ Coproduct CopulaDistribution Copyable CopyDirectory CopyFile CopyTag CopyToClipboard CornerFilter CornerNeighbors Correlation CorrelationDistance CorrelationFunction CorrelationTest Cos Cosh CoshIntegral CosineDistance CosineWindow CosIntegral Cot Coth Count CounterAssignments CounterBox CounterBoxOptions CounterClockwiseContourIntegral CounterEvaluator CounterFunction CounterIncrements CounterStyle CounterStyleMenuListing CountRoots CountryData Covariance CovarianceEstimatorFunction CovarianceFunction CoxianDistribution CoxIngersollRossProcess CoxModel CoxModelFit CramerVonMisesTest CreateArchive CreateDialog CreateDirectory CreateDocument CreateIntermediateDirectories CreatePalette CreatePalettePacket CreateScheduledTask CreateTemporary CreateWindow CriticalityFailureImportance CriticalitySuccessImportance CriticalSection Cross CrossingDetect CrossMatrix Csc Csch CubeRoot Cubics Cuboid CuboidBox Cumulant CumulantGeneratingFunction Cup CupCap Curl CurlyDoubleQuote CurlyQuote CurrentImage CurrentlySpeakingPacket CurrentValue CurvatureFlowFilter CurveClosed Cyan CycleGraph CycleIndexPolynomial Cycles CyclicGroup Cyclotomic Cylinder CylinderBox CylindricalDecomposition D DagumDistribution DamerauLevenshteinDistance DampingFactor Darker Dashed Dashing DataCompression DataDistribution DataRange DataReversed Date DateDelimiters DateDifference DateFunction DateList DateListLogPlot DateListPlot DatePattern DatePlus DateRange DateString DateTicksFormat DaubechiesWavelet DavisDistribution DawsonF DayCount DayCountConvention DayMatchQ DayName DayPlus DayRange DayRound DeBruijnGraph Debug DebugTag Decimal DeclareKnownSymbols DeclarePackage Decompose Decrement DedekindEta Default DefaultAxesStyle DefaultBaseStyle DefaultBoxStyle DefaultButton DefaultColor DefaultControlPlacement DefaultDuplicateCellStyle DefaultDuration DefaultElement DefaultFaceGridsStyle DefaultFieldHintStyle DefaultFont DefaultFontProperties DefaultFormatType DefaultFormatTypeForStyle DefaultFrameStyle DefaultFrameTicksStyle DefaultGridLinesStyle DefaultInlineFormatType DefaultInputFormatType DefaultLabelStyle DefaultMenuStyle DefaultNaturalLanguage DefaultNewCellStyle DefaultNewInlineCellStyle DefaultNotebook DefaultOptions DefaultOutputFormatType DefaultStyle DefaultStyleDefinitions DefaultTextFormatType DefaultTextInlineFormatType DefaultTicksStyle DefaultTooltipStyle DefaultValues Defer DefineExternal DefineInputStreamMethod DefineOutputStreamMethod Definition Degree DegreeCentrality DegreeGraphDistribution DegreeLexicographic DegreeReverseLexicographic Deinitialization Del Deletable Delete DeleteBorderComponents DeleteCases DeleteContents DeleteDirectory DeleteDuplicates DeleteFile DeleteSmallComponents DeleteWithContents DeletionWarning Delimiter DelimiterFlashTime DelimiterMatching Delimiters Denominator DensityGraphics DensityHistogram DensityPlot DependentVariables Deploy Deployed Depth DepthFirstScan Derivative DerivativeFilter DescriptorStateSpace DesignMatrix Det DGaussianWavelet DiacriticalPositioning Diagonal DiagonalMatrix Dialog DialogIndent DialogInput DialogLevel DialogNotebook DialogProlog DialogReturn DialogSymbols Diamond DiamondMatrix DiceDissimilarity DictionaryLookup DifferenceDelta DifferenceOrder DifferenceRoot DifferenceRootReduce Differences DifferentialD DifferentialRoot DifferentialRootReduce DifferentiatorFilter DigitBlock DigitBlockMinimum DigitCharacter DigitCount DigitQ DihedralGroup Dilation Dimensions DiracComb DiracDelta DirectedEdge DirectedEdges DirectedGraph DirectedGraphQ DirectedInfinity Direction Directive Directory DirectoryName DirectoryQ DirectoryStack DirichletCharacter DirichletConvolve DirichletDistribution DirichletL DirichletTransform DirichletWindow DisableConsolePrintPacket DiscreteChirpZTransform DiscreteConvolve DiscreteDelta DiscreteHadamardTransform DiscreteIndicator DiscreteLQEstimatorGains DiscreteLQRegulatorGains DiscreteLyapunovSolve DiscreteMarkovProcess DiscretePlot DiscretePlot3D DiscreteRatio DiscreteRiccatiSolve DiscreteShift DiscreteTimeModelQ DiscreteUniformDistribution DiscreteVariables DiscreteWaveletData DiscreteWaveletPacketTransform DiscreteWaveletTransform Discriminant Disjunction Disk DiskBox DiskMatrix Dispatch DispersionEstimatorFunction Display DisplayAllSteps DisplayEndPacket DisplayFlushImagePacket DisplayForm DisplayFunction DisplayPacket DisplayRules DisplaySetSizePacket DisplayString DisplayTemporary DisplayWith DisplayWithRef DisplayWithVariable DistanceFunction DistanceTransform Distribute Distributed DistributedContexts DistributeDefinitions DistributionChart DistributionDomain DistributionFitTest DistributionParameterAssumptions DistributionParameterQ Dithering Div Divergence Divide DivideBy Dividers Divisible Divisors DivisorSigma DivisorSum DMSList DMSString Do DockedCells DocumentNotebook DominantColors DOSTextFormat Dot DotDashed DotEqual Dotted DoubleBracketingBar DoubleContourIntegral DoubleDownArrow DoubleLeftArrow DoubleLeftRightArrow DoubleLeftTee DoubleLongLeftArrow DoubleLongLeftRightArrow DoubleLongRightArrow DoubleRightArrow DoubleRightTee DoubleUpArrow DoubleUpDownArrow DoubleVerticalBar DoublyInfinite Down DownArrow DownArrowBar DownArrowUpArrow DownLeftRightVector DownLeftTeeVector DownLeftVector DownLeftVectorBar DownRightTeeVector DownRightVector DownRightVectorBar Downsample DownTee DownTeeArrow DownValues DragAndDrop DrawEdges DrawFrontFaces DrawHighlighted Drop DSolve Dt DualLinearProgramming DualSystemsModel DumpGet DumpSave DuplicateFreeQ Dynamic DynamicBox DynamicBoxOptions DynamicEvaluationTimeout DynamicLocation DynamicModule DynamicModuleBox DynamicModuleBoxOptions DynamicModuleParent DynamicModuleValues DynamicName DynamicNamespace DynamicReference DynamicSetting DynamicUpdating DynamicWrapper DynamicWrapperBox DynamicWrapperBoxOptions E EccentricityCentrality EdgeAdd EdgeBetweennessCentrality EdgeCapacity EdgeCapForm EdgeColor EdgeConnectivity EdgeCost EdgeCount EdgeCoverQ EdgeDashing EdgeDelete EdgeDetect EdgeForm EdgeIndex EdgeJoinForm EdgeLabeling EdgeLabels EdgeLabelStyle EdgeList EdgeOpacity EdgeQ EdgeRenderingFunction EdgeRules EdgeShapeFunction EdgeStyle EdgeThickness EdgeWeight Editable EditButtonSettings EditCellTagsSettings EditDistance EffectiveInterest Eigensystem Eigenvalues EigenvectorCentrality Eigenvectors Element ElementData Eliminate EliminationOrder EllipticE EllipticExp EllipticExpPrime EllipticF EllipticFilterModel EllipticK EllipticLog EllipticNomeQ EllipticPi EllipticReducedHalfPeriods EllipticTheta EllipticThetaPrime EmitSound EmphasizeSyntaxErrors EmpiricalDistribution Empty EmptyGraphQ EnableConsolePrintPacket Enabled Encode End EndAdd EndDialogPacket EndFrontEndInteractionPacket EndOfFile EndOfLine EndOfString EndPackage EngineeringForm Enter EnterExpressionPacket EnterTextPacket Entropy EntropyFilter Environment Epilog Equal EqualColumns EqualRows EqualTilde EquatedTo Equilibrium EquirippleFilterKernel Equivalent Erf Erfc Erfi ErlangB ErlangC ErlangDistribution Erosion ErrorBox ErrorBoxOptions ErrorNorm ErrorPacket ErrorsDialogSettings EstimatedDistribution EstimatedProcess EstimatorGains EstimatorRegulator EuclideanDistance EulerE EulerGamma EulerianGraphQ EulerPhi Evaluatable Evaluate Evaluated EvaluatePacket EvaluationCell EvaluationCompletionAction EvaluationElements EvaluationMode EvaluationMonitor EvaluationNotebook EvaluationObject EvaluationOrder Evaluator EvaluatorNames EvenQ EventData EventEvaluator EventHandler EventHandlerTag EventLabels ExactBlackmanWindow ExactNumberQ ExactRootIsolation ExampleData Except ExcludedForms ExcludePods Exclusions ExclusionsStyle Exists Exit ExitDialog Exp Expand ExpandAll ExpandDenominator ExpandFileName ExpandNumerator Expectation ExpectationE ExpectedValue ExpGammaDistribution ExpIntegralE ExpIntegralEi Exponent ExponentFunction ExponentialDistribution ExponentialFamily ExponentialGeneratingFunction ExponentialMovingAverage ExponentialPowerDistribution ExponentPosition ExponentStep Export ExportAutoReplacements ExportPacket ExportString Expression ExpressionCell ExpressionPacket ExpToTrig ExtendedGCD Extension ExtentElementFunction ExtentMarkers ExtentSize ExternalCall ExternalDataCharacterEncoding Extract ExtractArchive ExtremeValueDistribution FaceForm FaceGrids FaceGridsStyle Factor FactorComplete Factorial Factorial2 FactorialMoment FactorialMomentGeneratingFunction FactorialPower FactorInteger FactorList FactorSquareFree FactorSquareFreeList FactorTerms FactorTermsList Fail FailureDistribution False FARIMAProcess FEDisableConsolePrintPacket FeedbackSector FeedbackSectorStyle FeedbackType FEEnableConsolePrintPacket Fibonacci FieldHint FieldHintStyle FieldMasked FieldSize File FileBaseName FileByteCount FileDate FileExistsQ FileExtension FileFormat FileHash FileInformation FileName FileNameDepth FileNameDialogSettings FileNameDrop FileNameJoin FileNames FileNameSetter FileNameSplit FileNameTake FilePrint FileType FilledCurve FilledCurveBox Filling FillingStyle FillingTransform FilterRules FinancialBond FinancialData FinancialDerivative FinancialIndicator Find FindArgMax FindArgMin FindClique FindClusters FindCurvePath FindDistributionParameters FindDivisions FindEdgeCover FindEdgeCut FindEulerianCycle FindFaces FindFile FindFit FindGeneratingFunction FindGeoLocation FindGeometricTransform FindGraphCommunities FindGraphIsomorphism FindGraphPartition FindHamiltonianCycle FindIndependentEdgeSet FindIndependentVertexSet FindInstance FindIntegerNullVector FindKClan FindKClique FindKClub FindKPlex FindLibrary FindLinearRecurrence FindList FindMaximum FindMaximumFlow FindMaxValue FindMinimum FindMinimumCostFlow FindMinimumCut FindMinValue FindPermutation FindPostmanTour FindProcessParameters FindRoot FindSequenceFunction FindSettings FindShortestPath FindShortestTour FindThreshold FindVertexCover FindVertexCut Fine FinishDynamic FiniteAbelianGroupCount FiniteGroupCount FiniteGroupData First FirstPassageTimeDistribution FischerGroupFi22 FischerGroupFi23 FischerGroupFi24Prime FisherHypergeometricDistribution FisherRatioTest FisherZDistribution Fit FitAll FittedModel FixedPoint FixedPointList FlashSelection Flat Flatten FlattenAt FlatTopWindow FlipView Floor FlushPrintOutputPacket Fold FoldList Font FontColor FontFamily FontForm FontName FontOpacity FontPostScriptName FontProperties FontReencoding FontSize FontSlant FontSubstitutions FontTracking FontVariations FontWeight For ForAll Format FormatRules FormatType FormatTypeAutoConvert FormatValues FormBox FormBoxOptions FortranForm Forward ForwardBackward Fourier FourierCoefficient FourierCosCoefficient FourierCosSeries FourierCosTransform FourierDCT FourierDCTFilter FourierDCTMatrix FourierDST FourierDSTMatrix FourierMatrix FourierParameters FourierSequenceTransform FourierSeries FourierSinCoefficient FourierSinSeries FourierSinTransform FourierTransform FourierTrigSeries FractionalBrownianMotionProcess FractionalPart FractionBox FractionBoxOptions FractionLine Frame FrameBox FrameBoxOptions Framed FrameInset FrameLabel Frameless FrameMargins FrameStyle FrameTicks FrameTicksStyle FRatioDistribution FrechetDistribution FreeQ FrequencySamplingFilterKernel FresnelC FresnelS Friday FrobeniusNumber FrobeniusSolve FromCharacterCode FromCoefficientRules FromContinuedFraction FromDate FromDigits FromDMS Front FrontEndDynamicExpression FrontEndEventActions FrontEndExecute FrontEndObject FrontEndResource FrontEndResourceString FrontEndStackSize FrontEndToken FrontEndTokenExecute FrontEndValueCache FrontEndVersion FrontFaceColor FrontFaceOpacity Full FullAxes FullDefinition FullForm FullGraphics FullOptions FullSimplify Function FunctionExpand FunctionInterpolation FunctionSpace FussellVeselyImportance GaborFilter GaborMatrix GaborWavelet GainMargins GainPhaseMargins Gamma GammaDistribution GammaRegularized GapPenalty Gather GatherBy GaugeFaceElementFunction GaugeFaceStyle GaugeFrameElementFunction GaugeFrameSize GaugeFrameStyle GaugeLabels GaugeMarkers GaugeStyle GaussianFilter GaussianIntegers GaussianMatrix GaussianWindow GCD GegenbauerC General GeneralizedLinearModelFit GenerateConditions GeneratedCell GeneratedParameters GeneratingFunction Generic GenericCylindricalDecomposition GenomeData GenomeLookup GeodesicClosing GeodesicDilation GeodesicErosion GeodesicOpening GeoDestination GeodesyData GeoDirection GeoDistance GeoGridPosition GeometricBrownianMotionProcess GeometricDistribution GeometricMean GeometricMeanFilter GeometricTransformation GeometricTransformation3DBox GeometricTransformation3DBoxOptions GeometricTransformationBox GeometricTransformationBoxOptions GeoPosition GeoPositionENU GeoPositionXYZ GeoProjectionData GestureHandler GestureHandlerTag Get GetBoundingBoxSizePacket GetContext GetEnvironment GetFileName GetFrontEndOptionsDataPacket GetLinebreakInformationPacket GetMenusPacket GetPageBreakInformationPacket Glaisher GlobalClusteringCoefficient GlobalPreferences GlobalSession Glow GoldenRatio GompertzMakehamDistribution GoodmanKruskalGamma GoodmanKruskalGammaTest Goto Grad Gradient GradientFilter GradientOrientationFilter Graph GraphAssortativity GraphCenter GraphComplement GraphData GraphDensity GraphDiameter GraphDifference GraphDisjointUnion GraphDistance GraphDistanceMatrix GraphElementData GraphEmbedding GraphHighlight GraphHighlightStyle GraphHub Graphics Graphics3D Graphics3DBox Graphics3DBoxOptions GraphicsArray GraphicsBaseline GraphicsBox GraphicsBoxOptions GraphicsColor GraphicsColumn GraphicsComplex GraphicsComplex3DBox GraphicsComplex3DBoxOptions GraphicsComplexBox GraphicsComplexBoxOptions GraphicsContents GraphicsData GraphicsGrid GraphicsGridBox GraphicsGroup GraphicsGroup3DBox GraphicsGroup3DBoxOptions GraphicsGroupBox GraphicsGroupBoxOptions GraphicsGrouping GraphicsHighlightColor GraphicsRow GraphicsSpacing GraphicsStyle GraphIntersection GraphLayout GraphLinkEfficiency GraphPeriphery GraphPlot GraphPlot3D GraphPower GraphPropertyDistribution GraphQ GraphRadius GraphReciprocity GraphRoot GraphStyle GraphUnion Gray GrayLevel GreatCircleDistance Greater GreaterEqual GreaterEqualLess GreaterFullEqual GreaterGreater GreaterLess GreaterSlantEqual GreaterTilde Green Grid GridBaseline GridBox GridBoxAlignment GridBoxBackground GridBoxDividers GridBoxFrame GridBoxItemSize GridBoxItemStyle GridBoxOptions GridBoxSpacings GridCreationSettings GridDefaultElement GridElementStyleOptions GridFrame GridFrameMargins GridGraph GridLines GridLinesStyle GroebnerBasis GroupActionBase GroupCentralizer GroupElementFromWord GroupElementPosition GroupElementQ GroupElements GroupElementToWord GroupGenerators GroupMultiplicationTable GroupOrbits GroupOrder GroupPageBreakWithin GroupSetwiseStabilizer GroupStabilizer GroupStabilizerChain Gudermannian GumbelDistribution HaarWavelet HadamardMatrix HalfNormalDistribution HamiltonianGraphQ HammingDistance HammingWindow HankelH1 HankelH2 HankelMatrix HannPoissonWindow HannWindow HaradaNortonGroupHN HararyGraph HarmonicMean HarmonicMeanFilter HarmonicNumber Hash HashTable Haversine HazardFunction Head HeadCompose Heads HeavisideLambda HeavisidePi HeavisideTheta HeldGroupHe HeldPart HelpBrowserLookup HelpBrowserNotebook HelpBrowserSettings HermiteDecomposition HermiteH HermitianMatrixQ HessenbergDecomposition Hessian HexadecimalCharacter Hexahedron HexahedronBox HexahedronBoxOptions HiddenSurface HighlightGraph HighlightImage HighpassFilter HigmanSimsGroupHS HilbertFilter HilbertMatrix Histogram Histogram3D HistogramDistribution HistogramList HistogramTransform HistogramTransformInterpolation HitMissTransform HITSCentrality HodgeDual HoeffdingD HoeffdingDTest Hold HoldAll HoldAllComplete HoldComplete HoldFirst HoldForm HoldPattern HoldRest HolidayCalendar HomeDirectory HomePage Horizontal HorizontalForm HorizontalGauge HorizontalScrollPosition HornerForm HotellingTSquareDistribution HoytDistribution HTMLSave Hue HumpDownHump HumpEqual HurwitzLerchPhi HurwitzZeta HyperbolicDistribution HypercubeGraph HyperexponentialDistribution Hyperfactorial Hypergeometric0F1 Hypergeometric0F1Regularized Hypergeometric1F1 Hypergeometric1F1Regularized Hypergeometric2F1 Hypergeometric2F1Regularized HypergeometricDistribution HypergeometricPFQ HypergeometricPFQRegularized HypergeometricU Hyperlink HyperlinkCreationSettings Hyphenation HyphenationOptions HypoexponentialDistribution HypothesisTestData I Identity IdentityMatrix If IgnoreCase Im Image Image3D Image3DSlices ImageAccumulate ImageAdd ImageAdjust ImageAlign ImageApply ImageAspectRatio ImageAssemble ImageCache ImageCacheValid ImageCapture ImageChannels ImageClip ImageColorSpace ImageCompose ImageConvolve ImageCooccurrence ImageCorners ImageCorrelate ImageCorrespondingPoints ImageCrop ImageData ImageDataPacket ImageDeconvolve ImageDemosaic ImageDifference ImageDimensions ImageDistance ImageEffect ImageFeatureTrack ImageFileApply ImageFileFilter ImageFileScan ImageFilter ImageForestingComponents ImageForwardTransformation ImageHistogram ImageKeypoints ImageLevels ImageLines ImageMargins ImageMarkers ImageMeasurements ImageMultiply ImageOffset ImagePad ImagePadding ImagePartition ImagePeriodogram ImagePerspectiveTransformation ImageQ ImageRangeCache ImageReflect ImageRegion ImageResize ImageResolution ImageRotate ImageRotated ImageScaled ImageScan ImageSize ImageSizeAction ImageSizeCache ImageSizeMultipliers ImageSizeRaw ImageSubtract ImageTake ImageTransformation ImageTrim ImageType ImageValue ImageValuePositions Implies Import ImportAutoReplacements ImportString ImprovementImportance In IncidenceGraph IncidenceList IncidenceMatrix IncludeConstantBasis IncludeFileExtension IncludePods IncludeSingularTerm Increment Indent IndentingNewlineSpacings IndentMaxFraction IndependenceTest IndependentEdgeSetQ IndependentUnit IndependentVertexSetQ Indeterminate IndexCreationOptions Indexed IndexGraph IndexTag Inequality InexactNumberQ InexactNumbers Infinity Infix Information Inherited InheritScope Initialization InitializationCell InitializationCellEvaluation InitializationCellWarning InlineCounterAssignments InlineCounterIncrements InlineRules Inner Inpaint Input InputAliases InputAssumptions InputAutoReplacements InputField InputFieldBox InputFieldBoxOptions InputForm InputGrouping InputNamePacket InputNotebook InputPacket InputSettings InputStream InputString InputStringPacket InputToBoxFormPacket Insert InsertionPointObject InsertResults Inset Inset3DBox Inset3DBoxOptions InsetBox InsetBoxOptions Install InstallService InString Integer IntegerDigits IntegerExponent IntegerLength IntegerPart IntegerPartitions IntegerQ Integers IntegerString Integral Integrate Interactive InteractiveTradingChart Interlaced Interleaving InternallyBalancedDecomposition InterpolatingFunction InterpolatingPolynomial Interpolation InterpolationOrder InterpolationPoints InterpolationPrecision Interpretation InterpretationBox InterpretationBoxOptions InterpretationFunction InterpretTemplate InterquartileRange Interrupt InterruptSettings Intersection Interval IntervalIntersection IntervalMemberQ IntervalUnion Inverse InverseBetaRegularized InverseCDF InverseChiSquareDistribution InverseContinuousWaveletTransform InverseDistanceTransform InverseEllipticNomeQ InverseErf InverseErfc InverseFourier InverseFourierCosTransform InverseFourierSequenceTransform InverseFourierSinTransform InverseFourierTransform InverseFunction InverseFunctions InverseGammaDistribution InverseGammaRegularized InverseGaussianDistribution InverseGudermannian InverseHaversine InverseJacobiCD InverseJacobiCN InverseJacobiCS InverseJacobiDC InverseJacobiDN InverseJacobiDS InverseJacobiNC InverseJacobiND InverseJacobiNS InverseJacobiSC InverseJacobiSD InverseJacobiSN InverseLaplaceTransform InversePermutation InverseRadon InverseSeries InverseSurvivalFunction InverseWaveletTransform InverseWeierstrassP InverseZTransform Invisible InvisibleApplication InvisibleTimes IrreduciblePolynomialQ IsolatingInterval IsomorphicGraphQ IsotopeData Italic Item ItemBox ItemBoxOptions ItemSize ItemStyle ItoProcess JaccardDissimilarity JacobiAmplitude Jacobian JacobiCD JacobiCN JacobiCS JacobiDC JacobiDN JacobiDS JacobiNC JacobiND JacobiNS JacobiP JacobiSC JacobiSD JacobiSN JacobiSymbol JacobiZeta JankoGroupJ1 JankoGroupJ2 JankoGroupJ3 JankoGroupJ4 JarqueBeraALMTest JohnsonDistribution Join Joined JoinedCurve JoinedCurveBox JoinForm JordanDecomposition JordanModelDecomposition K KagiChart KaiserBesselWindow KaiserWindow KalmanEstimator KalmanFilter KarhunenLoeveDecomposition KaryTree KatzCentrality KCoreComponents KDistribution KelvinBei KelvinBer KelvinKei KelvinKer KendallTau KendallTauTest KernelExecute KernelMixtureDistribution KernelObject Kernels Ket Khinchin KirchhoffGraph KirchhoffMatrix KleinInvariantJ KnightTourGraph KnotData KnownUnitQ KolmogorovSmirnovTest KroneckerDelta KroneckerModelDecomposition KroneckerProduct KroneckerSymbol KuiperTest KumaraswamyDistribution Kurtosis KuwaharaFilter Label Labeled LabeledSlider LabelingFunction LabelStyle LaguerreL LambdaComponents LambertW LanczosWindow LandauDistribution Language LanguageCategory LaplaceDistribution LaplaceTransform Laplacian LaplacianFilter LaplacianGaussianFilter Large Larger Last Latitude LatitudeLongitude LatticeData LatticeReduce Launch LaunchKernels LayeredGraphPlot LayerSizeFunction LayoutInformation LCM LeafCount LeapYearQ LeastSquares LeastSquaresFilterKernel Left LeftArrow LeftArrowBar LeftArrowRightArrow LeftDownTeeVector LeftDownVector LeftDownVectorBar LeftRightArrow LeftRightVector LeftTee LeftTeeArrow LeftTeeVector LeftTriangle LeftTriangleBar LeftTriangleEqual LeftUpDownVector LeftUpTeeVector LeftUpVector LeftUpVectorBar LeftVector LeftVectorBar LegendAppearance Legended LegendFunction LegendLabel LegendLayout LegendMargins LegendMarkers LegendMarkerSize LegendreP LegendreQ LegendreType Length LengthWhile LerchPhi Less LessEqual LessEqualGreater LessFullEqual LessGreater LessLess LessSlantEqual LessTilde LetterCharacter LetterQ Level LeveneTest LeviCivitaTensor LevyDistribution Lexicographic LibraryFunction LibraryFunctionError LibraryFunctionInformation LibraryFunctionLoad LibraryFunctionUnload LibraryLoad LibraryUnload LicenseID LiftingFilterData LiftingWaveletTransform LightBlue LightBrown LightCyan Lighter LightGray LightGreen Lighting LightingAngle LightMagenta LightOrange LightPink LightPurple LightRed LightSources LightYellow Likelihood Limit LimitsPositioning LimitsPositioningTokens LindleyDistribution Line Line3DBox LinearFilter LinearFractionalTransform LinearModelFit LinearOffsetFunction LinearProgramming LinearRecurrence LinearSolve LinearSolveFunction LineBox LineBreak LinebreakAdjustments LineBreakChart LineBreakWithin LineColor LineForm LineGraph LineIndent LineIndentMaxFraction LineIntegralConvolutionPlot LineIntegralConvolutionScale LineLegend LineOpacity LineSpacing LineWrapParts LinkActivate LinkClose LinkConnect LinkConnectedQ LinkCreate LinkError LinkFlush LinkFunction LinkHost LinkInterrupt LinkLaunch LinkMode LinkObject LinkOpen LinkOptions LinkPatterns LinkProtocol LinkRead LinkReadHeld LinkReadyQ Links LinkWrite LinkWriteHeld LiouvilleLambda List Listable ListAnimate ListContourPlot ListContourPlot3D ListConvolve ListCorrelate ListCurvePathPlot ListDeconvolve ListDensityPlot Listen ListFourierSequenceTransform ListInterpolation ListLineIntegralConvolutionPlot ListLinePlot ListLogLinearPlot ListLogLogPlot ListLogPlot ListPicker ListPickerBox ListPickerBoxBackground ListPickerBoxOptions ListPlay ListPlot ListPlot3D ListPointPlot3D ListPolarPlot ListQ ListStreamDensityPlot ListStreamPlot ListSurfacePlot3D ListVectorDensityPlot ListVectorPlot ListVectorPlot3D ListZTransform Literal LiteralSearch LocalClusteringCoefficient LocalizeVariables LocationEquivalenceTest LocationTest Locator LocatorAutoCreate LocatorBox LocatorBoxOptions LocatorCentering LocatorPane LocatorPaneBox LocatorPaneBoxOptions LocatorRegion Locked Log Log10 Log2 LogBarnesG LogGamma LogGammaDistribution LogicalExpand LogIntegral LogisticDistribution LogitModelFit LogLikelihood LogLinearPlot LogLogisticDistribution LogLogPlot LogMultinormalDistribution LogNormalDistribution LogPlot LogRankTest LogSeriesDistribution LongEqual Longest LongestAscendingSequence LongestCommonSequence LongestCommonSequencePositions LongestCommonSubsequence LongestCommonSubsequencePositions LongestMatch LongForm Longitude LongLeftArrow LongLeftRightArrow LongRightArrow Loopback LoopFreeGraphQ LowerCaseQ LowerLeftArrow LowerRightArrow LowerTriangularize LowpassFilter LQEstimatorGains LQGRegulator LQOutputRegulatorGains LQRegulatorGains LUBackSubstitution LucasL LuccioSamiComponents LUDecomposition LyapunovSolve LyonsGroupLy MachineID MachineName MachineNumberQ MachinePrecision MacintoshSystemPageSetup Magenta Magnification Magnify MainSolve MaintainDynamicCaches Majority MakeBoxes MakeExpression MakeRules MangoldtLambda ManhattanDistance Manipulate Manipulator MannWhitneyTest MantissaExponent Manual Map MapAll MapAt MapIndexed MAProcess MapThread MarcumQ MardiaCombinedTest MardiaKurtosisTest MardiaSkewnessTest MarginalDistribution MarkovProcessProperties Masking MatchingDissimilarity MatchLocalNameQ MatchLocalNames MatchQ Material MathematicaNotation MathieuC MathieuCharacteristicA MathieuCharacteristicB MathieuCharacteristicExponent MathieuCPrime MathieuGroupM11 MathieuGroupM12 MathieuGroupM22 MathieuGroupM23 MathieuGroupM24 MathieuS MathieuSPrime MathMLForm MathMLText Matrices MatrixExp MatrixForm MatrixFunction MatrixLog MatrixPlot MatrixPower MatrixQ MatrixRank Max MaxBend MaxDetect MaxExtraBandwidths MaxExtraConditions MaxFeatures MaxFilter Maximize MaxIterations MaxMemoryUsed MaxMixtureKernels MaxPlotPoints MaxPoints MaxRecursion MaxStableDistribution MaxStepFraction MaxSteps MaxStepSize MaxValue MaxwellDistribution McLaughlinGroupMcL Mean MeanClusteringCoefficient MeanDegreeConnectivity MeanDeviation MeanFilter MeanGraphDistance MeanNeighborDegree MeanShift MeanShiftFilter Median MedianDeviation MedianFilter Medium MeijerG MeixnerDistribution MemberQ MemoryConstrained MemoryInUse Menu MenuAppearance MenuCommandKey MenuEvaluator MenuItem MenuPacket MenuSortingValue MenuStyle MenuView MergeDifferences Mesh MeshFunctions MeshRange MeshShading MeshStyle Message MessageDialog MessageList MessageName MessageOptions MessagePacket Messages MessagesNotebook MetaCharacters MetaInformation Method MethodOptions MexicanHatWavelet MeyerWavelet Min MinDetect MinFilter MinimalPolynomial MinimalStateSpaceModel Minimize Minors MinRecursion MinSize MinStableDistribution Minus MinusPlus MinValue Missing MissingDataMethod MittagLefflerE MixedRadix MixedRadixQuantity MixtureDistribution Mod Modal Mode Modular ModularLambda Module Modulus MoebiusMu Moment Momentary MomentConvert MomentEvaluate MomentGeneratingFunction Monday Monitor MonomialList MonomialOrder MonsterGroupM MorletWavelet MorphologicalBinarize MorphologicalBranchPoints MorphologicalComponents MorphologicalEulerNumber MorphologicalGraph MorphologicalPerimeter MorphologicalTransform Most MouseAnnotation MouseAppearance MouseAppearanceTag MouseButtons Mouseover MousePointerNote MousePosition MovingAverage MovingMedian MoyalDistribution MultiedgeStyle MultilaunchWarning MultiLetterItalics MultiLetterStyle MultilineFunction Multinomial MultinomialDistribution MultinormalDistribution MultiplicativeOrder Multiplicity Multiselection MultivariateHypergeometricDistribution MultivariatePoissonDistribution MultivariateTDistribution N NakagamiDistribution NameQ Names NamespaceBox Nand NArgMax NArgMin NBernoulliB NCache NDSolve NDSolveValue Nearest NearestFunction NeedCurrentFrontEndPackagePacket NeedCurrentFrontEndSymbolsPacket NeedlemanWunschSimilarity Needs Negative NegativeBinomialDistribution NegativeMultinomialDistribution NeighborhoodGraph Nest NestedGreaterGreater NestedLessLess NestedScriptRules NestList NestWhile NestWhileList NevilleThetaC NevilleThetaD NevilleThetaN NevilleThetaS NewPrimitiveStyle NExpectation Next NextPrime NHoldAll NHoldFirst NHoldRest NicholsGridLines NicholsPlot NIntegrate NMaximize NMaxValue NMinimize NMinValue NominalVariables NonAssociative NoncentralBetaDistribution NoncentralChiSquareDistribution NoncentralFRatioDistribution NoncentralStudentTDistribution NonCommutativeMultiply NonConstants None NonlinearModelFit NonlocalMeansFilter NonNegative NonPositive Nor NorlundB Norm Normal NormalDistribution NormalGrouping Normalize NormalizedSquaredEuclideanDistance NormalsFunction NormFunction Not NotCongruent NotCupCap NotDoubleVerticalBar Notebook NotebookApply NotebookAutoSave NotebookClose NotebookConvertSettings NotebookCreate NotebookCreateReturnObject NotebookDefault NotebookDelete NotebookDirectory NotebookDynamicExpression NotebookEvaluate NotebookEventActions NotebookFileName NotebookFind NotebookFindReturnObject NotebookGet NotebookGetLayoutInformationPacket NotebookGetMisspellingsPacket NotebookInformation NotebookInterfaceObject NotebookLocate NotebookObject NotebookOpen NotebookOpenReturnObject NotebookPath NotebookPrint NotebookPut NotebookPutReturnObject NotebookRead NotebookResetGeneratedCells Notebooks NotebookSave NotebookSaveAs NotebookSelection NotebookSetupLayoutInformationPacket NotebooksMenu NotebookWrite NotElement NotEqualTilde NotExists NotGreater NotGreaterEqual NotGreaterFullEqual NotGreaterGreater NotGreaterLess NotGreaterSlantEqual NotGreaterTilde NotHumpDownHump NotHumpEqual NotLeftTriangle NotLeftTriangleBar NotLeftTriangleEqual NotLess NotLessEqual NotLessFullEqual NotLessGreater NotLessLess NotLessSlantEqual NotLessTilde NotNestedGreaterGreater NotNestedLessLess NotPrecedes NotPrecedesEqual NotPrecedesSlantEqual NotPrecedesTilde NotReverseElement NotRightTriangle NotRightTriangleBar NotRightTriangleEqual NotSquareSubset NotSquareSubsetEqual NotSquareSuperset NotSquareSupersetEqual NotSubset NotSubsetEqual NotSucceeds NotSucceedsEqual NotSucceedsSlantEqual NotSucceedsTilde NotSuperset NotSupersetEqual NotTilde NotTildeEqual NotTildeFullEqual NotTildeTilde NotVerticalBar NProbability NProduct NProductFactors NRoots NSolve NSum NSumTerms Null NullRecords NullSpace NullWords Number NumberFieldClassNumber NumberFieldDiscriminant NumberFieldFundamentalUnits NumberFieldIntegralBasis NumberFieldNormRepresentatives NumberFieldRegulator NumberFieldRootsOfUnity NumberFieldSignature NumberForm NumberFormat NumberMarks NumberMultiplier NumberPadding NumberPoint NumberQ NumberSeparator NumberSigns NumberString Numerator NumericFunction NumericQ NuttallWindow NValues NyquistGridLines NyquistPlot O ObservabilityGramian ObservabilityMatrix ObservableDecomposition ObservableModelQ OddQ Off Offset OLEData On ONanGroupON OneIdentity Opacity Open OpenAppend Opener OpenerBox OpenerBoxOptions OpenerView OpenFunctionInspectorPacket Opening OpenRead OpenSpecialOptions OpenTemporary OpenWrite Operate OperatingSystem OptimumFlowData Optional OptionInspectorSettings OptionQ Options OptionsPacket OptionsPattern OptionValue OptionValueBox OptionValueBoxOptions Or Orange Order OrderDistribution OrderedQ Ordering Orderless OrnsteinUhlenbeckProcess Orthogonalize Out Outer OutputAutoOverwrite OutputControllabilityMatrix OutputControllableModelQ OutputForm OutputFormData OutputGrouping OutputMathEditExpression OutputNamePacket OutputResponse OutputSizeLimit OutputStream Over OverBar OverDot Overflow OverHat Overlaps Overlay OverlayBox OverlayBoxOptions Overscript OverscriptBox OverscriptBoxOptions OverTilde OverVector OwenT OwnValues PackingMethod PaddedForm Padding PadeApproximant PadLeft PadRight PageBreakAbove PageBreakBelow PageBreakWithin PageFooterLines PageFooters PageHeaderLines PageHeaders PageHeight PageRankCentrality PageWidth PairedBarChart PairedHistogram PairedSmoothHistogram PairedTTest PairedZTest PaletteNotebook PalettePath Pane PaneBox PaneBoxOptions Panel PanelBox PanelBoxOptions Paneled PaneSelector PaneSelectorBox PaneSelectorBoxOptions PaperWidth ParabolicCylinderD ParagraphIndent ParagraphSpacing ParallelArray ParallelCombine ParallelDo ParallelEvaluate Parallelization Parallelize ParallelMap ParallelNeeds ParallelProduct ParallelSubmit ParallelSum ParallelTable ParallelTry Parameter ParameterEstimator ParameterMixtureDistribution ParameterVariables ParametricFunction ParametricNDSolve ParametricNDSolveValue ParametricPlot ParametricPlot3D ParentConnect ParentDirectory ParentForm Parenthesize ParentList ParetoDistribution Part PartialCorrelationFunction PartialD ParticleData Partition PartitionsP PartitionsQ ParzenWindow PascalDistribution PassEventsDown PassEventsUp Paste PasteBoxFormInlineCells PasteButton Path PathGraph PathGraphQ Pattern PatternSequence PatternTest PauliMatrix PaulWavelet Pause PausedTime PDF PearsonChiSquareTest PearsonCorrelationTest PearsonDistribution PerformanceGoal PeriodicInterpolation Periodogram PeriodogramArray PermutationCycles PermutationCyclesQ PermutationGroup PermutationLength PermutationList PermutationListQ PermutationMax PermutationMin PermutationOrder PermutationPower PermutationProduct PermutationReplace Permutations PermutationSupport Permute PeronaMalikFilter Perpendicular PERTDistribution PetersenGraph PhaseMargins Pi Pick PIDData PIDDerivativeFilter PIDFeedforward PIDTune Piecewise PiecewiseExpand PieChart PieChart3D PillaiTrace PillaiTraceTest Pink Pivoting PixelConstrained PixelValue PixelValuePositions Placed Placeholder PlaceholderReplace Plain PlanarGraphQ Play PlayRange Plot Plot3D Plot3Matrix PlotDivision PlotJoined PlotLabel PlotLayout PlotLegends PlotMarkers PlotPoints PlotRange PlotRangeClipping PlotRangePadding PlotRegion PlotStyle Plus PlusMinus Pochhammer PodStates PodWidth Point Point3DBox PointBox PointFigureChart PointForm PointLegend PointSize PoissonConsulDistribution PoissonDistribution PoissonProcess PoissonWindow PolarAxes PolarAxesOrigin PolarGridLines PolarPlot PolarTicks PoleZeroMarkers PolyaAeppliDistribution PolyGamma Polygon Polygon3DBox Polygon3DBoxOptions PolygonBox PolygonBoxOptions PolygonHoleScale PolygonIntersections PolygonScale PolyhedronData PolyLog PolynomialExtendedGCD PolynomialForm PolynomialGCD PolynomialLCM PolynomialMod PolynomialQ PolynomialQuotient PolynomialQuotientRemainder PolynomialReduce PolynomialRemainder Polynomials PopupMenu PopupMenuBox PopupMenuBoxOptions PopupView PopupWindow Position Positive PositiveDefiniteMatrixQ PossibleZeroQ Postfix PostScript Power PowerDistribution PowerExpand PowerMod PowerModList PowerSpectralDensity PowersRepresentations PowerSymmetricPolynomial Precedence PrecedenceForm Precedes PrecedesEqual PrecedesSlantEqual PrecedesTilde Precision PrecisionGoal PreDecrement PredictionRoot PreemptProtect PreferencesPath Prefix PreIncrement Prepend PrependTo PreserveImageOptions Previous PriceGraphDistribution PrimaryPlaceholder Prime PrimeNu PrimeOmega PrimePi PrimePowerQ PrimeQ Primes PrimeZetaP PrimitiveRoot PrincipalComponents PrincipalValue Print PrintAction PrintForm PrintingCopies PrintingOptions PrintingPageRange PrintingStartingPageNumber PrintingStyleEnvironment PrintPrecision PrintTemporary Prism PrismBox PrismBoxOptions PrivateCellOptions PrivateEvaluationOptions PrivateFontOptions PrivateFrontEndOptions PrivateNotebookOptions PrivatePaths Probability ProbabilityDistribution ProbabilityPlot ProbabilityPr ProbabilityScalePlot ProbitModelFit ProcessEstimator ProcessParameterAssumptions ProcessParameterQ ProcessStateDomain ProcessTimeDomain Product ProductDistribution ProductLog ProgressIndicator ProgressIndicatorBox ProgressIndicatorBoxOptions Projection Prolog PromptForm Properties Property PropertyList PropertyValue Proportion Proportional Protect Protected ProteinData Pruning PseudoInverse Purple Put PutAppend Pyramid PyramidBox PyramidBoxOptions QBinomial QFactorial QGamma QHypergeometricPFQ QPochhammer QPolyGamma QRDecomposition QuadraticIrrationalQ Quantile QuantilePlot Quantity QuantityForm QuantityMagnitude QuantityQ QuantityUnit Quartics QuartileDeviation Quartiles QuartileSkewness QueueingNetworkProcess QueueingProcess QueueProperties Quiet Quit Quotient QuotientRemainder RadialityCentrality RadicalBox RadicalBoxOptions RadioButton RadioButtonBar RadioButtonBox RadioButtonBoxOptions Radon RamanujanTau RamanujanTauL RamanujanTauTheta RamanujanTauZ Random RandomChoice RandomComplex RandomFunction RandomGraph RandomImage RandomInteger RandomPermutation RandomPrime RandomReal RandomSample RandomSeed RandomVariate RandomWalkProcess Range RangeFilter RangeSpecification RankedMax RankedMin Raster Raster3D Raster3DBox Raster3DBoxOptions RasterArray RasterBox RasterBoxOptions Rasterize RasterSize Rational RationalFunctions Rationalize Rationals Ratios Raw RawArray RawBoxes RawData RawMedium RayleighDistribution Re Read ReadList ReadProtected Real RealBlockDiagonalForm RealDigits RealExponent Reals Reap Record RecordLists RecordSeparators Rectangle RectangleBox RectangleBoxOptions RectangleChart RectangleChart3D RecurrenceFilter RecurrenceTable RecurringDigitsForm Red Reduce RefBox ReferenceLineStyle ReferenceMarkers ReferenceMarkerStyle Refine ReflectionMatrix ReflectionTransform Refresh RefreshRate RegionBinarize RegionFunction RegionPlot RegionPlot3D RegularExpression Regularization Reinstall Release ReleaseHold ReliabilityDistribution ReliefImage ReliefPlot Remove RemoveAlphaChannel RemoveAsynchronousTask Removed RemoveInputStreamMethod RemoveOutputStreamMethod RemoveProperty RemoveScheduledTask RenameDirectory RenameFile RenderAll RenderingOptions RenewalProcess RenkoChart Repeated RepeatedNull RepeatedString Replace ReplaceAll ReplaceHeldPart ReplaceImageValue ReplaceList ReplacePart ReplacePixelValue ReplaceRepeated Resampling Rescale RescalingTransform ResetDirectory ResetMenusPacket ResetScheduledTask Residue Resolve Rest Resultant ResumePacket Return ReturnExpressionPacket ReturnInputFormPacket ReturnPacket ReturnTextPacket Reverse ReverseBiorthogonalSplineWavelet ReverseElement ReverseEquilibrium ReverseGraph ReverseUpEquilibrium RevolutionAxis RevolutionPlot3D RGBColor RiccatiSolve RiceDistribution RidgeFilter RiemannR RiemannSiegelTheta RiemannSiegelZ Riffle Right RightArrow RightArrowBar RightArrowLeftArrow RightCosetRepresentative RightDownTeeVector RightDownVector RightDownVectorBar RightTee RightTeeArrow RightTeeVector RightTriangle RightTriangleBar RightTriangleEqual RightUpDownVector RightUpTeeVector RightUpVector RightUpVectorBar RightVector RightVectorBar RiskAchievementImportance RiskReductionImportance RogersTanimotoDissimilarity Root RootApproximant RootIntervals RootLocusPlot RootMeanSquare RootOfUnityQ RootReduce Roots RootSum Rotate RotateLabel RotateLeft RotateRight RotationAction RotationBox RotationBoxOptions RotationMatrix RotationTransform Round RoundImplies RoundingRadius Row RowAlignments RowBackgrounds RowBox RowHeights RowLines RowMinHeight RowReduce RowsEqual RowSpacings RSolve RudvalisGroupRu Rule RuleCondition RuleDelayed RuleForm RulerUnits Run RunScheduledTask RunThrough RuntimeAttributes RuntimeOptions RussellRaoDissimilarity SameQ SameTest SampleDepth SampledSoundFunction SampledSoundList SampleRate SamplingPeriod SARIMAProcess SARMAProcess SatisfiabilityCount SatisfiabilityInstances SatisfiableQ Saturday Save Saveable SaveAutoDelete SaveDefinitions SawtoothWave Scale Scaled ScaleDivisions ScaledMousePosition ScaleOrigin ScalePadding ScaleRanges ScaleRangeStyle ScalingFunctions ScalingMatrix ScalingTransform Scan ScheduledTaskActiveQ ScheduledTaskData ScheduledTaskObject ScheduledTasks SchurDecomposition ScientificForm ScreenRectangle ScreenStyleEnvironment ScriptBaselineShifts ScriptLevel ScriptMinSize ScriptRules ScriptSizeMultipliers Scrollbars ScrollingOptions ScrollPosition Sec Sech SechDistribution SectionGrouping SectorChart SectorChart3D SectorOrigin SectorSpacing SeedRandom Select Selectable SelectComponents SelectedCells SelectedNotebook Selection SelectionAnimate SelectionCell SelectionCellCreateCell SelectionCellDefaultStyle SelectionCellParentStyle SelectionCreateCell SelectionDebuggerTag SelectionDuplicateCell SelectionEvaluate SelectionEvaluateCreateCell SelectionMove SelectionPlaceholder SelectionSetStyle SelectWithContents SelfLoops SelfLoopStyle SemialgebraicComponentInstances SendMail Sequence SequenceAlignment SequenceForm SequenceHold SequenceLimit Series SeriesCoefficient SeriesData SessionTime Set SetAccuracy SetAlphaChannel SetAttributes Setbacks SetBoxFormNamesPacket SetDelayed SetDirectory SetEnvironment SetEvaluationNotebook SetFileDate SetFileLoadingContext SetNotebookStatusLine SetOptions SetOptionsPacket SetPrecision SetProperty SetSelectedNotebook SetSharedFunction SetSharedVariable SetSpeechParametersPacket SetStreamPosition SetSystemOptions Setter SetterBar SetterBox SetterBoxOptions Setting SetValue Shading Shallow ShannonWavelet ShapiroWilkTest Share Sharpen ShearingMatrix ShearingTransform ShenCastanMatrix Short ShortDownArrow Shortest ShortestMatch ShortestPathFunction ShortLeftArrow ShortRightArrow ShortUpArrow Show ShowAutoStyles ShowCellBracket ShowCellLabel ShowCellTags ShowClosedCellArea ShowContents ShowControls ShowCursorTracker ShowGroupOpenCloseIcon ShowGroupOpener ShowInvisibleCharacters ShowPageBreaks ShowPredictiveInterface ShowSelection ShowShortBoxForm ShowSpecialCharacters ShowStringCharacters ShowSyntaxStyles ShrinkingDelay ShrinkWrapBoundingBox SiegelTheta SiegelTukeyTest Sign Signature SignedRankTest SignificanceLevel SignPadding SignTest SimilarityRules SimpleGraph SimpleGraphQ Simplify Sin Sinc SinghMaddalaDistribution SingleEvaluation SingleLetterItalics SingleLetterStyle SingularValueDecomposition SingularValueList SingularValuePlot SingularValues Sinh SinhIntegral SinIntegral SixJSymbol Skeleton SkeletonTransform SkellamDistribution Skewness SkewNormalDistribution Skip SliceDistribution Slider Slider2D Slider2DBox Slider2DBoxOptions SliderBox SliderBoxOptions SlideView Slot SlotSequence Small SmallCircle Smaller SmithDelayCompensator SmithWatermanSimilarity SmoothDensityHistogram SmoothHistogram SmoothHistogram3D SmoothKernelDistribution SocialMediaData Socket SokalSneathDissimilarity Solve SolveAlways SolveDelayed Sort SortBy Sound SoundAndGraphics SoundNote SoundVolume Sow Space SpaceForm Spacer Spacings Span SpanAdjustments SpanCharacterRounding SpanFromAbove SpanFromBoth SpanFromLeft SpanLineThickness SpanMaxSize SpanMinSize SpanningCharacters SpanSymmetric SparseArray SpatialGraphDistribution Speak SpeakTextPacket SpearmanRankTest SpearmanRho Spectrogram SpectrogramArray Specularity SpellingCorrection SpellingDictionaries SpellingDictionariesPath SpellingOptions SpellingSuggestionsPacket Sphere SphereBox SphericalBesselJ SphericalBesselY SphericalHankelH1 SphericalHankelH2 SphericalHarmonicY SphericalPlot3D SphericalRegion SpheroidalEigenvalue SpheroidalJoiningFactor SpheroidalPS SpheroidalPSPrime SpheroidalQS SpheroidalQSPrime SpheroidalRadialFactor SpheroidalS1 SpheroidalS1Prime SpheroidalS2 SpheroidalS2Prime Splice SplicedDistribution SplineClosed SplineDegree SplineKnots SplineWeights Split SplitBy SpokenString Sqrt SqrtBox SqrtBoxOptions Square SquaredEuclideanDistance SquareFreeQ SquareIntersection SquaresR SquareSubset SquareSubsetEqual SquareSuperset SquareSupersetEqual SquareUnion SquareWave StabilityMargins StabilityMarginsStyle StableDistribution Stack StackBegin StackComplete StackInhibit StandardDeviation StandardDeviationFilter StandardForm Standardize StandbyDistribution Star StarGraph StartAsynchronousTask StartingStepSize StartOfLine StartOfString StartScheduledTask StartupSound StateDimensions StateFeedbackGains StateOutputEstimator StateResponse StateSpaceModel StateSpaceRealization StateSpaceTransform StationaryDistribution StationaryWaveletPacketTransform StationaryWaveletTransform StatusArea StatusCentrality StepMonitor StieltjesGamma StirlingS1 StirlingS2 StopAsynchronousTask StopScheduledTask StrataVariables StratonovichProcess StreamColorFunction StreamColorFunctionScaling StreamDensityPlot StreamPlot StreamPoints StreamPosition Streams StreamScale StreamStyle String StringBreak StringByteCount StringCases StringCount StringDrop StringExpression StringForm StringFormat StringFreeQ StringInsert StringJoin StringLength StringMatchQ StringPosition StringQ StringReplace StringReplaceList StringReplacePart StringReverse StringRotateLeft StringRotateRight StringSkeleton StringSplit StringTake StringToStream StringTrim StripBoxes StripOnInput StripWrapperBoxes StrokeForm StructuralImportance StructuredArray StructuredSelection StruveH StruveL Stub StudentTDistribution Style StyleBox StyleBoxAutoDelete StyleBoxOptions StyleData StyleDefinitions StyleForm StyleKeyMapping StyleMenuListing StyleNameDialogSettings StyleNames StylePrint StyleSheetPath Subfactorial Subgraph SubMinus SubPlus SubresultantPolynomialRemainders SubresultantPolynomials Subresultants Subscript SubscriptBox SubscriptBoxOptions Subscripted Subset SubsetEqual Subsets SubStar Subsuperscript SubsuperscriptBox SubsuperscriptBoxOptions Subtract SubtractFrom SubValues Succeeds SucceedsEqual SucceedsSlantEqual SucceedsTilde SuchThat Sum SumConvergence Sunday SuperDagger SuperMinus SuperPlus Superscript SuperscriptBox SuperscriptBoxOptions Superset SupersetEqual SuperStar Surd SurdForm SurfaceColor SurfaceGraphics SurvivalDistribution SurvivalFunction SurvivalModel SurvivalModelFit SuspendPacket SuzukiDistribution SuzukiGroupSuz SwatchLegend Switch Symbol SymbolName SymletWavelet Symmetric SymmetricGroup SymmetricMatrixQ SymmetricPolynomial SymmetricReduction Symmetrize SymmetrizedArray SymmetrizedArrayRules SymmetrizedDependentComponents SymmetrizedIndependentComponents SymmetrizedReplacePart SynchronousInitialization SynchronousUpdating Syntax SyntaxForm SyntaxInformation SyntaxLength SyntaxPacket SyntaxQ SystemDialogInput SystemException SystemHelpPath SystemInformation SystemInformationData SystemOpen SystemOptions SystemsModelDelay SystemsModelDelayApproximate SystemsModelDelete SystemsModelDimensions SystemsModelExtract SystemsModelFeedbackConnect SystemsModelLabels SystemsModelOrder SystemsModelParallelConnect SystemsModelSeriesConnect SystemsModelStateFeedbackConnect SystemStub Tab TabFilling Table TableAlignments TableDepth TableDirections TableForm TableHeadings TableSpacing TableView TableViewBox TabSpacings TabView TabViewBox TabViewBoxOptions TagBox TagBoxNote TagBoxOptions TaggingRules TagSet TagSetDelayed TagStyle TagUnset Take TakeWhile Tally Tan Tanh TargetFunctions TargetUnits TautologyQ TelegraphProcess TemplateBox TemplateBoxOptions TemplateSlotSequence TemporalData Temporary TemporaryVariable TensorContract TensorDimensions TensorExpand TensorProduct TensorQ TensorRank TensorReduce TensorSymmetry TensorTranspose TensorWedge Tetrahedron TetrahedronBox TetrahedronBoxOptions TeXForm TeXSave Text Text3DBox Text3DBoxOptions TextAlignment TextBand TextBoundingBox TextBox TextCell TextClipboardType TextData TextForm TextJustification TextLine TextPacket TextParagraph TextRecognize TextRendering TextStyle Texture TextureCoordinateFunction TextureCoordinateScaling Therefore ThermometerGauge Thick Thickness Thin Thinning ThisLink ThompsonGroupTh Thread ThreeJSymbol Threshold Through Throw Thumbnail Thursday Ticks TicksStyle Tilde TildeEqual TildeFullEqual TildeTilde TimeConstrained TimeConstraint Times TimesBy TimeSeriesForecast TimeSeriesInvertibility TimeUsed TimeValue TimeZone Timing Tiny TitleGrouping TitsGroupT ToBoxes ToCharacterCode ToColor ToContinuousTimeModel ToDate ToDiscreteTimeModel ToeplitzMatrix ToExpression ToFileName Together Toggle ToggleFalse Toggler TogglerBar TogglerBox TogglerBoxOptions ToHeldExpression ToInvertibleTimeSeries TokenWords Tolerance ToLowerCase ToNumberField TooBig Tooltip TooltipBox TooltipBoxOptions TooltipDelay TooltipStyle Top TopHatTransform TopologicalSort ToRadicals ToRules ToString Total TotalHeight TotalVariationFilter TotalWidth TouchscreenAutoZoom TouchscreenControlPlacement ToUpperCase Tr Trace TraceAbove TraceAction TraceBackward TraceDepth TraceDialog TraceForward TraceInternal TraceLevel TraceOff TraceOn TraceOriginal TracePrint TraceScan TrackedSymbols TradingChart TraditionalForm TraditionalFunctionNotation TraditionalNotation TraditionalOrder TransferFunctionCancel TransferFunctionExpand TransferFunctionFactor TransferFunctionModel TransferFunctionPoles TransferFunctionTransform TransferFunctionZeros TransformationFunction TransformationFunctions TransformationMatrix TransformedDistribution TransformedField Translate TranslationTransform TransparentColor Transpose TreeForm TreeGraph TreeGraphQ TreePlot TrendStyle TriangleWave TriangularDistribution Trig TrigExpand TrigFactor TrigFactorList Trigger TrigReduce TrigToExp TrimmedMean True TrueQ TruncatedDistribution TsallisQExponentialDistribution TsallisQGaussianDistribution TTest Tube TubeBezierCurveBox TubeBezierCurveBoxOptions TubeBox TubeBSplineCurveBox TubeBSplineCurveBoxOptions Tuesday TukeyLambdaDistribution TukeyWindow Tuples TuranGraph TuringMachine Transparent UnateQ Uncompress Undefined UnderBar Underflow Underlined Underoverscript UnderoverscriptBox UnderoverscriptBoxOptions Underscript UnderscriptBox UnderscriptBoxOptions UndirectedEdge UndirectedGraph UndirectedGraphQ UndocumentedTestFEParserPacket UndocumentedTestGetSelectionPacket Unequal Unevaluated UniformDistribution UniformGraphDistribution UniformSumDistribution Uninstall Union UnionPlus Unique UnitBox UnitConvert UnitDimensions Unitize UnitRootTest UnitSimplify UnitStep UnitTriangle UnitVector Unprotect UnsameQ UnsavedVariables Unset UnsetShared UntrackedVariables Up UpArrow UpArrowBar UpArrowDownArrow Update UpdateDynamicObjects UpdateDynamicObjectsSynchronous UpdateInterval UpDownArrow UpEquilibrium UpperCaseQ UpperLeftArrow UpperRightArrow UpperTriangularize Upsample UpSet UpSetDelayed UpTee UpTeeArrow UpValues URL URLFetch URLFetchAsynchronous URLSave URLSaveAsynchronous UseGraphicsRange Using UsingFrontEnd V2Get ValidationLength Value ValueBox ValueBoxOptions ValueForm ValueQ ValuesData Variables Variance VarianceEquivalenceTest VarianceEstimatorFunction VarianceGammaDistribution VarianceTest VectorAngle VectorColorFunction VectorColorFunctionScaling VectorDensityPlot VectorGlyphData VectorPlot VectorPlot3D VectorPoints VectorQ Vectors VectorScale VectorStyle Vee Verbatim Verbose VerboseConvertToPostScriptPacket VerifyConvergence VerifySolutions VerifyTestAssumptions Version VersionNumber VertexAdd VertexCapacity VertexColors VertexComponent VertexConnectivity VertexCoordinateRules VertexCoordinates VertexCorrelationSimilarity VertexCosineSimilarity VertexCount VertexCoverQ VertexDataCoordinates VertexDegree VertexDelete VertexDiceSimilarity VertexEccentricity VertexInComponent VertexInDegree VertexIndex VertexJaccardSimilarity VertexLabeling VertexLabels VertexLabelStyle VertexList VertexNormals VertexOutComponent VertexOutDegree VertexQ VertexRenderingFunction VertexReplace VertexShape VertexShapeFunction VertexSize VertexStyle VertexTextureCoordinates VertexWeight Vertical VerticalBar VerticalForm VerticalGauge VerticalSeparator VerticalSlider VerticalTilde ViewAngle ViewCenter ViewMatrix ViewPoint ViewPointSelectorSettings ViewPort ViewRange ViewVector ViewVertical VirtualGroupData Visible VisibleCell VoigtDistribution VonMisesDistribution WaitAll WaitAsynchronousTask WaitNext WaitUntil WakebyDistribution WalleniusHypergeometricDistribution WaringYuleDistribution WatershedComponents WatsonUSquareTest WattsStrogatzGraphDistribution WaveletBestBasis WaveletFilterCoefficients WaveletImagePlot WaveletListPlot WaveletMapIndexed WaveletMatrixPlot WaveletPhi WaveletPsi WaveletScale WaveletScalogram WaveletThreshold WeaklyConnectedComponents WeaklyConnectedGraphQ WeakStationarity WeatherData WeberE Wedge Wednesday WeibullDistribution WeierstrassHalfPeriods WeierstrassInvariants WeierstrassP WeierstrassPPrime WeierstrassSigma WeierstrassZeta WeightedAdjacencyGraph WeightedAdjacencyMatrix WeightedData WeightedGraphQ Weights WelchWindow WheelGraph WhenEvent Which While White Whitespace WhitespaceCharacter WhittakerM WhittakerW WienerFilter WienerProcess WignerD WignerSemicircleDistribution WilksW WilksWTest WindowClickSelect WindowElements WindowFloating WindowFrame WindowFrameElements WindowMargins WindowMovable WindowOpacity WindowSelected WindowSize WindowStatusArea WindowTitle WindowToolbars WindowWidth With WolframAlpha WolframAlphaDate WolframAlphaQuantity WolframAlphaResult Word WordBoundary WordCharacter WordData WordSearch WordSeparators WorkingPrecision Write WriteString Wronskian XMLElement XMLObject Xnor Xor Yellow YuleDissimilarity ZernikeR ZeroSymmetric ZeroTest ZeroWidthTimes Zeta ZetaZero ZipfDistribution ZTest ZTransform $Aborted $ActivationGroupID $ActivationKey $ActivationUserRegistered $AddOnsDirectory $AssertFunction $Assumptions $AsynchronousTask $BaseDirectory $BatchInput $BatchOutput $BoxForms $ByteOrdering $Canceled $CharacterEncoding $CharacterEncodings $CommandLine $CompilationTarget $ConditionHold $ConfiguredKernels $Context $ContextPath $ControlActiveSetting $CreationDate $CurrentLink $DateStringFormat $DefaultFont $DefaultFrontEnd $DefaultImagingDevice $DefaultPath $Display $DisplayFunction $DistributedContexts $DynamicEvaluation $Echo $Epilog $ExportFormats $Failed $FinancialDataSource $FormatType $FrontEnd $FrontEndSession $GeoLocation $HistoryLength $HomeDirectory $HTTPCookies $IgnoreEOF $ImagingDevices $ImportFormats $InitialDirectory $Input $InputFileName $InputStreamMethods $Inspector $InstallationDate $InstallationDirectory $InterfaceEnvironment $IterationLimit $KernelCount $KernelID $Language $LaunchDirectory $LibraryPath $LicenseExpirationDate $LicenseID $LicenseProcesses $LicenseServer $LicenseSubprocesses $LicenseType $Line $Linked $LinkSupported $LoadedFiles $MachineAddresses $MachineDomain $MachineDomains $MachineEpsilon $MachineID $MachineName $MachinePrecision $MachineType $MaxExtraPrecision $MaxLicenseProcesses $MaxLicenseSubprocesses $MaxMachineNumber $MaxNumber $MaxPiecewiseCases $MaxPrecision $MaxRootDegree $MessageGroups $MessageList $MessagePrePrint $Messages $MinMachineNumber $MinNumber $MinorReleaseNumber $MinPrecision $ModuleNumber $NetworkLicense $NewMessage $NewSymbol $Notebooks $NumberMarks $Off $OperatingSystem $Output $OutputForms $OutputSizeLimit $OutputStreamMethods $Packages $ParentLink $ParentProcessID $PasswordFile $PatchLevelID $Path $PathnameSeparator $PerformanceGoal $PipeSupported $Post $Pre $PreferencesDirectory $PrePrint $PreRead $PrintForms $PrintLiteral $ProcessID $ProcessorCount $ProcessorType $ProductInformation $ProgramName $RandomState $RecursionLimit $ReleaseNumber $RootDirectory $ScheduledTask $ScriptCommandLine $SessionID $SetParentLink $SharedFunctions $SharedVariables $SoundDisplay $SoundDisplayFunction $SuppressInputFormHeads $SynchronousEvaluation $SyntaxHandler $System $SystemCharacterEncoding $SystemID $SystemWordLength $TemporaryDirectory $TemporaryPrefix $TextStyle $TimedOut $TimeUnit $TimeZone $TopDirectory $TraceOff $TraceOn $TracePattern $TracePostAction $TracePreAction $Urgent $UserAddOnsDirectory $UserBaseDirectory $UserDocumentsDirectory $UserName $Version $VersionNumber",
+contains:[{className:"comment",begin:/\(\*/,end:/\*\)/},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,{className:"list",begin:/\{/,end:/\}/,illegal:/:/}]}}),a.registerLanguage("matlab",function(a){var b=[a.C_NUMBER_MODE,{className:"string",begin:"'",end:"'",contains:[a.BACKSLASH_ESCAPE,{begin:"''"}]}],c={relevance:0,contains:[{className:"operator",begin:/'['\.]*/}]};return{keywords:{keyword:"break case catch classdef continue else elseif end enumerated events for function global if methods otherwise parfor persistent properties return spmd switch try while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson"},illegal:'(//|"|#|/\\*|\\s+/\\w+)',contains:[{className:"function",beginKeywords:"function",end:"$",contains:[a.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"},{className:"params",begin:"\\[",end:"\\]"}]},{begin:/[a-zA-Z_][a-zA-Z_0-9]*'['\.]*/,returnBegin:!0,relevance:0,contains:[{begin:/[a-zA-Z_][a-zA-Z_0-9]*/,relevance:0},c.contains[0]]},{className:"matrix",begin:"\\[",end:"\\]",contains:b,relevance:0,starts:c},{className:"cell",begin:"\\{",end:/}/,contains:b,relevance:0,starts:c},{begin:/\)/,relevance:0,starts:c},a.COMMENT("^\\s*\\%\\{\\s*$","^\\s*\\%\\}\\s*$"),a.COMMENT("\\%","$")].concat(b)}}),a.registerLanguage("mel",function(a){return{keywords:"int float string vector matrix if else switch case default while do for in break continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor animDisplay animView annotate appendStringArray applicationName applyAttrPreset applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem componentEditor compositingInterop computePolysetVolume condition cone confirmDialog connectAttr connectControl connectDynamic connectJoint connectionInfo constrain constrainValue constructionHistory container containsMultibyte contextInfo control convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected displayColor displayCull displayLevelOfDetail displayPref displayRGBColor displaySmoothness displayStats displayString displaySurface distanceDimContext distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor editorTemplate effector emit emitter enableDevice encodeString endString endsWith env equivalent equivalentTol erf error eval evalDeferred evalEcho event exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo filetest filletCurve filter filterCurve filterExpand filterStudioImport findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss geometryConstraint getApplicationVersionAsFloat getAttr getClassification getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation listNodeTypes listPanelCategories listRelatives listSets listTransforms listUnselected listerEditor loadFluid loadNewShelf loadPlugin loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration panelHistory paramDimContext paramDimension paramLocator parent parentConstraint particle particleExists particleInstancer particleRenderInfo partition pasteKey pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE registerPluginResource rehash reloadImage removeJoint removeMultiInstance removePanelCategory rename renameAttr renameSelectionList renameUI render renderGlobalsNode renderInfo renderLayerButton renderLayerParent renderLayerPostProcess renderLayerUnparent renderManip renderPartition renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor renderWindowSelectContext renderer reorder reorderDeformers requires reroot resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType selectedNodes selectionConnection separator setAttr setAttrEnumResource setAttrMapping setAttrNiceNameResource setConstraintRestPosition setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField shortNameOf showHelp showHidden showManipCtx showSelectionInTitle showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString stringToStringArray strip stripPrefixFromName stroke subdAutoProjection subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList textToShelf textureDisplacePlane textureHairColor texturePlacementContext textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper trace track trackCtx transferAttributes transformCompare transformLimits translator trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform",illegal:"</",contains:[a.C_NUMBER_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"string",begin:"`",end:"`",contains:[a.BACKSLASH_ESCAPE]},{className:"variable",variants:[{begin:"\\$\\d"},{begin:"[\\$\\%\\@](\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)"},{begin:"\\*(\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)",relevance:0}]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]}}),a.registerLanguage("mercury",function(a){var b={keyword:"module use_module import_module include_module end_module initialise mutable initialize finalize finalise interface implementation pred mode func type inst solver any_pred any_func is semidet det nondet multi erroneous failure cc_nondet cc_multi typeclass instance where pragma promise external trace atomic or_else require_complete_switch require_det require_semidet require_multi require_nondet require_cc_multi require_cc_nondet require_erroneous require_failure",pragma:"inline no_inline type_spec source_file fact_table obsolete memo loop_check minimal_model terminates does_not_terminate check_termination promise_equivalent_clauses",preprocessor:"foreign_proc foreign_decl foreign_code foreign_type foreign_import_module foreign_export_enum foreign_export foreign_enum may_call_mercury will_not_call_mercury thread_safe not_thread_safe maybe_thread_safe promise_pure promise_semipure tabled_for_io local untrailed trailed attach_to_io_state can_pass_as_mercury_type stable will_not_throw_exception may_modify_trail will_not_modify_trail may_duplicate may_not_duplicate affects_liveness does_not_affect_liveness doesnt_affect_liveness no_sharing unknown_sharing sharing",built_in:"some all not if then else true fail false try catch catch_any semidet_true semidet_false semidet_fail impure_true impure semipure"},c={className:"label",begin:"XXX",end:"$",endsWithParent:!0,relevance:0},d=a.inherit(a.C_LINE_COMMENT_MODE,{begin:"%"}),e=a.inherit(a.C_BLOCK_COMMENT_MODE,{relevance:0});d.contains.push(c),e.contains.push(c);var f={className:"number",begin:"0'.\\|0[box][0-9a-fA-F]*"},g=a.inherit(a.APOS_STRING_MODE,{relevance:0}),h=a.inherit(a.QUOTE_STRING_MODE,{relevance:0}),i={className:"constant",begin:"\\\\[abfnrtv]\\|\\\\x[0-9a-fA-F]*\\\\\\|%[-+# *.0-9]*[dioxXucsfeEgGp]",relevance:0};h.contains.push(i);var j={className:"built_in",variants:[{begin:"<=>"},{begin:"<=",relevance:0},{begin:"=>",relevance:0},{begin:"/\\\\"},{begin:"\\\\/"}]},k={className:"built_in",variants:[{begin:":-\\|-->"},{begin:"=",relevance:0}]};return{aliases:["m","moo"],keywords:b,contains:[j,k,d,e,f,a.NUMBER_MODE,g,h,{begin:/:-/}]}}),a.registerLanguage("mizar",function(a){return{keywords:"environ vocabularies notations constructors definitions registrations theorems schemes requirements begin end definition registration cluster existence pred func defpred deffunc theorem proof let take assume then thus hence ex for st holds consider reconsider such that and in provided of as from be being by means equals implies iff redefine define now not or attr is mode suppose per cases set thesis contradiction scheme reserve struct correctness compatibility coherence symmetry assymetry reflexivity irreflexivity connectedness uniqueness commutativity idempotence involutiveness projectivity",contains:[a.COMMENT("::","$")]}}),a.registerLanguage("perl",function(a){var b="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when",c={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:b},d={begin:"->{",end:"}"},e={className:"variable",variants:[{begin:/\$\d/},{begin:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{begin:/[\$%@][^\s\w{]/,relevance:0}]},f=[a.BACKSLASH_ESCAPE,c,e],g=[e,a.HASH_COMMENT_MODE,a.COMMENT("^\\=\\w","\\=cut",{endsWithParent:!0}),d,{className:"string",contains:f,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*\\<",end:"\\>",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[a.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[a.BACKSLASH_ESCAPE]},{begin:"{\\w+}",contains:[],relevance:0},{begin:"-?\\w+\\s*\\=\\>",contains:[],relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+a.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[a.HASH_COMMENT_MODE,{className:"regexp",begin:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",relevance:10},{className:"regexp",begin:"(m|qr)?/",end:"/[a-z]*",contains:[a.BACKSLASH_ESCAPE],relevance:0}]},{className:"sub",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",relevance:5},{className:"operator",begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return c.contains=g,d.contains=g,{aliases:["pl"],keywords:b,contains:g}}),a.registerLanguage("mojolicious",function(a){return{subLanguage:"xml",contains:[{className:"preprocessor",begin:"^__(END|DATA)__$"},{begin:"^\\s*%{1,2}={0,2}",end:"$",subLanguage:"perl"},{begin:"<%{1,2}={0,2}",end:"={0,1}%>",subLanguage:"perl",excludeBegin:!0,excludeEnd:!0}]}}),a.registerLanguage("monkey",function(a){var b={className:"number",relevance:0,variants:[{begin:"[$][a-fA-F0-9]+"},a.NUMBER_MODE]};return{case_insensitive:!0,keywords:{keyword:"public private property continue exit extern new try catch eachin not abstract final select case default const local global field end if then else elseif endif while wend repeat until forever for to step next return module inline throw",built_in:"DebugLog DebugStop Error Print ACos ACosr ASin ASinr ATan ATan2 ATan2r ATanr Abs Abs Ceil Clamp Clamp Cos Cosr Exp Floor Log Max Max Min Min Pow Sgn Sgn Sin Sinr Sqrt Tan Tanr Seed PI HALFPI TWOPI",literal:"true false null and or shl shr mod"},illegal:/\/\*/,contains:[a.COMMENT("#rem","#end"),a.COMMENT("'","$",{relevance:0}),{className:"function",beginKeywords:"function method",end:"[(=:]|$",illegal:/\n/,contains:[a.UNDERSCORE_TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:"$",contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},{className:"variable",begin:"\\b(self|super)\\b"},{className:"preprocessor",beginKeywords:"import",end:"$"},{className:"preprocessor",begin:"\\s*#",end:"$",keywords:"if else elseif endif end then"},{className:"pi",begin:"^\\s*strict\\b"},{beginKeywords:"alias",end:"=",contains:[a.UNDERSCORE_TITLE_MODE]},a.QUOTE_STRING_MODE,b]}}),a.registerLanguage("nginx",function(a){var b={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/}/},{begin:"[\\$\\@]"+a.UNDERSCORE_IDENT_RE}]},c={endsWithParent:!0,lexemes:"[a-z/_]+",keywords:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},relevance:0,illegal:"=>",contains:[a.HASH_COMMENT_MODE,{className:"string",contains:[a.BACKSLASH_ESCAPE,b],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{className:"url",begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[b]},{className:"regexp",contains:[a.BACKSLASH_ESCAPE,b],variants:[{begin:"\\s\\^",end:"\\s|{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},b]};return{aliases:["nginxconf"],contains:[a.HASH_COMMENT_MODE,{begin:a.UNDERSCORE_IDENT_RE+"\\s",end:";|{",returnBegin:!0,contains:[{className:"title",begin:a.UNDERSCORE_IDENT_RE,starts:c}],relevance:0}],illegal:"[^\\s\\}]"}}),a.registerLanguage("nimrod",function(a){return{aliases:["nim"],keywords:{keyword:"addr and as asm bind block break|0 case|0 cast const|0 continue|0 converter discard distinct|10 div do elif else|0 end|0 enum|0 except export finally for from generic if|0 import|0 in include|0 interface is isnot|10 iterator|10 let|0 macro method|10 mixin mod nil not notin|10 object|0 of or out proc|10 ptr raise ref|10 return shl shr static template try|0 tuple type|0 using|0 var|0 when while|0 with without xor yield",literal:"shared guarded stdin stdout stderr result|10 true false"},contains:[{className:"decorator",begin:/{\./,end:/\.}/,relevance:10},{className:"string",begin:/[a-zA-Z]\w*"/,end:/"/,contains:[{begin:/""/}]},{className:"string",begin:/([a-zA-Z]\w*)?"""/,end:/"""/},a.QUOTE_STRING_MODE,{className:"type",begin:/\b[A-Z]\w+\b/,relevance:0},{className:"type",begin:/\b(int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|float|float32|float64|bool|char|string|cstring|pointer|expr|stmt|void|auto|any|range|array|openarray|varargs|seq|set|clong|culong|cchar|cschar|cshort|cint|csize|clonglong|cfloat|cdouble|clongdouble|cuchar|cushort|cuint|culonglong|cstringarray|semistatic)\b/},{className:"number",begin:/\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/,relevance:0},{className:"number",begin:/\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/,relevance:0},{className:"number",begin:/\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/,relevance:0},{className:"number",begin:/\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/,relevance:0},a.HASH_COMMENT_MODE]}}),a.registerLanguage("nix",function(a){var b={keyword:"rec with let in inherit assert if else then",constant:"true false or and null",built_in:"import abort baseNameOf dirOf isNull builtins map removeAttrs throw toString derivation"},c={className:"subst",begin:/\$\{/,end:/}/,keywords:b},d={className:"variable",begin:/[a-zA-Z0-9-_]+(\s*=)/,relevance:0},e={className:"string",begin:"''",end:"''",contains:[c]},f={className:"string",begin:'"',end:'"',contains:[c]},g=[a.NUMBER_MODE,a.HASH_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,e,f,d];return c.contains=g,{aliases:["nixos"],keywords:b,contains:g}}),a.registerLanguage("nsis",function(a){var b={className:"symbol",begin:"\\$(ADMINTOOLS|APPDATA|CDBURN_AREA|CMDLINE|COMMONFILES32|COMMONFILES64|COMMONFILES|COOKIES|DESKTOP|DOCUMENTS|EXEDIR|EXEFILE|EXEPATH|FAVORITES|FONTS|HISTORY|HWNDPARENT|INSTDIR|INTERNET_CACHE|LANGUAGE|LOCALAPPDATA|MUSIC|NETHOOD|OUTDIR|PICTURES|PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES32|PROGRAMFILES64|PROGRAMFILES|QUICKLAUNCH|RECENT|RESOURCES_LOCALIZED|RESOURCES|SENDTO|SMPROGRAMS|SMSTARTUP|STARTMENU|SYSDIR|TEMP|TEMPLATES|VIDEOS|WINDIR)"},c={className:"constant",begin:"\\$+{[a-zA-Z0-9_]+}"},d={className:"variable",begin:"\\$+[a-zA-Z0-9_]+",illegal:"\\(\\){}"},e={className:"constant",begin:"\\$+\\([a-zA-Z0-9_]+\\)"},f={className:"params",begin:"(ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)"},g={className:"constant",begin:"\\!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversionsystem|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|searchparse|searchreplace|tempfile|undef|verbose|warning)"};return{case_insensitive:!1,keywords:{keyword:"Abort AddBrandingImage AddSize AllowRootDirInstall AllowSkipFiles AutoCloseWindow BGFont BGGradient BrandingText BringToFront Call CallInstDLL Caption ChangeUI CheckBitmap ClearErrors CompletedText ComponentText CopyFiles CRCCheck CreateDirectory CreateFont CreateShortCut Delete DeleteINISec DeleteINIStr DeleteRegKey DeleteRegValue DetailPrint DetailsButtonText DirText DirVar DirVerify EnableWindow EnumRegKey EnumRegValue Exch Exec ExecShell ExecWait ExpandEnvStrings File FileBufSize FileClose FileErrorText FileOpen FileRead FileReadByte FileReadUTF16LE FileReadWord FileSeek FileWrite FileWriteByte FileWriteUTF16LE FileWriteWord FindClose FindFirst FindNext FindWindow FlushINI FunctionEnd GetCurInstType GetCurrentAddress GetDlgItem GetDLLVersion GetDLLVersionLocal GetErrorLevel GetFileTime GetFileTimeLocal GetFullPathName GetFunctionAddress GetInstDirError GetLabelAddress GetTempFileName Goto HideWindow Icon IfAbort IfErrors IfFileExists IfRebootFlag IfSilent InitPluginsDir InstallButtonText InstallColors InstallDir InstallDirRegKey InstProgressFlags InstType InstTypeGetText InstTypeSetText IntCmp IntCmpU IntFmt IntOp IsWindow LangString LicenseBkColor LicenseData LicenseForceSelection LicenseLangString LicenseText LoadLanguageFile LockWindow LogSet LogText ManifestDPIAware ManifestSupportedOS MessageBox MiscButtonText Name Nop OutFile Page PageCallbacks PageExEnd Pop Push Quit ReadEnvStr ReadINIStr ReadRegDWORD ReadRegStr Reboot RegDLL Rename RequestExecutionLevel ReserveFile Return RMDir SearchPath SectionEnd SectionGetFlags SectionGetInstTypes SectionGetSize SectionGetText SectionGroupEnd SectionIn SectionSetFlags SectionSetInstTypes SectionSetSize SectionSetText SendMessage SetAutoClose SetBrandingImage SetCompress SetCompressor SetCompressorDictSize SetCtlColors SetCurInstType SetDatablockOptimize SetDateSave SetDetailsPrint SetDetailsView SetErrorLevel SetErrors SetFileAttributes SetFont SetOutPath SetOverwrite SetPluginUnload SetRebootFlag SetRegView SetShellVarContext SetSilent ShowInstDetails ShowUninstDetails ShowWindow SilentInstall SilentUnInstall Sleep SpaceTexts StrCmp StrCmpS StrCpy StrLen SubCaption SubSectionEnd Unicode UninstallButtonText UninstallCaption UninstallIcon UninstallSubCaption UninstallText UninstPage UnRegDLL Var VIAddVersionKey VIFileVersion VIProductVersion WindowIcon WriteINIStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr WriteUninstaller XPStyle",
+return-1==c.indexOf(a)&&-1==f.indexOf(a)&&-1==d.indexOf(a)});g=g.concat(e);var h={className:"string",relevance:0,variants:[{begin:'"',end:'"',contains:[{begin:'""'}]},{begin:"'",end:"'",contains:[{begin:"''"}]}]},i={className:"number",begin:a.NUMBER_RE,relevance:0},j={className:"string",variants:[a.QUOTE_STRING_MODE,{begin:"'\\\\?.",end:"'",illegal:"."}]},k={className:"preprocessor",begin:"#",end:"$",keywords:"if else elif endif define undef warning error line pragma ifdef ifndef",contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",contains:[j,{className:"string",begin:"<",end:">",illegal:"\\n"}]},j,i,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]};return{aliases:["sqf"],case_insensitive:!0,keywords:{keyword:c.join(" "),built_in:g.join(" "),literal:f.join(" ")},contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,i,h,k]}}),a.registerLanguage("sql",function(a){var b=a.COMMENT("--","$");return{case_insensitive:!0,illegal:/[<>{}*]/,contains:[{className:"operator",beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke",end:/;/,endsWithParent:!0,keywords:{keyword:"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes c cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle d data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration e each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract f failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function g general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http i id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists k keep keep_duplicates key keys kill l language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim m main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex n name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding p package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime t table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[a.BACKSLASH_ESCAPE,{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[a.BACKSLASH_ESCAPE,{begin:'""'}]},{className:"string",begin:"`",end:"`",contains:[a.BACKSLASH_ESCAPE]},a.C_NUMBER_MODE,a.C_BLOCK_COMMENT_MODE,b]},a.C_BLOCK_COMMENT_MODE,b]}}),a.registerLanguage("stata",function(a){return{aliases:["do","ado"],case_insensitive:!0,keywords:"if else in foreach for forv forva forval forvalu forvalue forvalues by bys bysort xi quietly qui capture about ac ac_7 acprplot acprplot_7 adjust ado adopath adoupdate alpha ameans an ano anov anova anova_estat anova_terms anovadef aorder ap app appe appen append arch arch_dr arch_estat arch_p archlm areg areg_p args arima arima_dr arima_estat arima_p as asmprobit asmprobit_estat asmprobit_lf asmprobit_mfx__dlg asmprobit_p ass asse asser assert avplot avplot_7 avplots avplots_7 bcskew0 bgodfrey binreg bip0_lf biplot bipp_lf bipr_lf bipr_p biprobit bitest bitesti bitowt blogit bmemsize boot bootsamp bootstrap bootstrap_8 boxco_l boxco_p boxcox boxcox_6 boxcox_p bprobit br break brier bro brow brows browse brr brrstat bs bs_7 bsampl_w bsample bsample_7 bsqreg bstat bstat_7 bstat_8 bstrap bstrap_7 ca ca_estat ca_p cabiplot camat canon canon_8 canon_8_p canon_estat canon_p cap caprojection capt captu captur capture cat cc cchart cchart_7 cci cd censobs_table centile cf char chdir checkdlgfiles checkestimationsample checkhlpfiles checksum chelp ci cii cl class classutil clear cli clis clist clo clog clog_lf clog_p clogi clogi_sw clogit clogit_lf clogit_p clogitp clogl_sw cloglog clonevar clslistarray cluster cluster_measures cluster_stop cluster_tree cluster_tree_8 clustermat cmdlog cnr cnre cnreg cnreg_p cnreg_sw cnsreg codebook collaps4 collapse colormult_nb colormult_nw compare compress conf confi confir confirm conren cons const constr constra constrai constrain constraint continue contract copy copyright copysource cor corc corr corr2data corr_anti corr_kmo corr_smc corre correl correla correlat correlate corrgram cou coun count cox cox_p cox_sw coxbase coxhaz coxvar cprplot cprplot_7 crc cret cretu cretur creturn cross cs cscript cscript_log csi ct ct_is ctset ctst_5 ctst_st cttost cumsp cumsp_7 cumul cusum cusum_7 cutil d datasig datasign datasigna datasignat datasignatu datasignatur datasignature datetof db dbeta de dec deco decod decode deff des desc descr descri describ describe destring dfbeta dfgls dfuller di di_g dir dirstats dis discard disp disp_res disp_s displ displa display distinct do doe doed doedi doedit dotplot dotplot_7 dprobit drawnorm drop ds ds_util dstdize duplicates durbina dwstat dydx e ed edi edit egen eivreg emdef en enc enco encod encode eq erase ereg ereg_lf ereg_p ereg_sw ereghet ereghet_glf ereghet_glf_sh ereghet_gp ereghet_ilf ereghet_ilf_sh ereghet_ip eret eretu eretur ereturn err erro error est est_cfexist est_cfname est_clickable est_expand est_hold est_table est_unhold est_unholdok estat estat_default estat_summ estat_vce_only esti estimates etodow etof etomdy ex exi exit expand expandcl fac fact facto factor factor_estat factor_p factor_pca_rotated factor_rotate factormat fcast fcast_compute fcast_graph fdades fdadesc fdadescr fdadescri fdadescrib fdadescribe fdasav fdasave fdause fh_st file open file read file close file filefilter fillin find_hlp_file findfile findit findit_7 fit fl fli flis flist for5_0 form forma format fpredict frac_154 frac_adj frac_chk frac_cox frac_ddp frac_dis frac_dv frac_in frac_mun frac_pp frac_pq frac_pv frac_wgt frac_xo fracgen fracplot fracplot_7 fracpoly fracpred fron_ex fron_hn fron_p fron_tn fron_tn2 frontier ftodate ftoe ftomdy ftowdate g gamhet_glf gamhet_gp gamhet_ilf gamhet_ip gamma gamma_d2 gamma_p gamma_sw gammahet gdi_hexagon gdi_spokes ge gen gene gener genera generat generate genrank genstd genvmean gettoken gl gladder gladder_7 glim_l01 glim_l02 glim_l03 glim_l04 glim_l05 glim_l06 glim_l07 glim_l08 glim_l09 glim_l10 glim_l11 glim_l12 glim_lf glim_mu glim_nw1 glim_nw2 glim_nw3 glim_p glim_v1 glim_v2 glim_v3 glim_v4 glim_v5 glim_v6 glim_v7 glm glm_6 glm_p glm_sw glmpred glo glob globa global glogit glogit_8 glogit_p gmeans gnbre_lf gnbreg gnbreg_5 gnbreg_p gomp_lf gompe_sw gomper_p gompertz gompertzhet gomphet_glf gomphet_glf_sh gomphet_gp gomphet_ilf gomphet_ilf_sh gomphet_ip gphdot gphpen gphprint gprefs gprobi_p gprobit gprobit_8 gr gr7 gr_copy gr_current gr_db gr_describe gr_dir gr_draw gr_draw_replay gr_drop gr_edit gr_editviewopts gr_example gr_example2 gr_export gr_print gr_qscheme gr_query gr_read gr_rename gr_replay gr_save gr_set gr_setscheme gr_table gr_undo gr_use graph graph7 grebar greigen greigen_7 greigen_8 grmeanby grmeanby_7 gs_fileinfo gs_filetype gs_graphinfo gs_stat gsort gwood h hadimvo hareg hausman haver he heck_d2 heckma_p heckman heckp_lf heckpr_p heckprob hel help hereg hetpr_lf hetpr_p hetprob hettest hexdump hilite hist hist_7 histogram hlogit hlu hmeans hotel hotelling hprobit hreg hsearch icd9 icd9_ff icd9p iis impute imtest inbase include inf infi infil infile infix inp inpu input ins insheet insp inspe inspec inspect integ inten intreg intreg_7 intreg_p intrg2_ll intrg_ll intrg_ll2 ipolate iqreg ir irf irf_create irfm iri is_svy is_svysum isid istdize ivprob_1_lf ivprob_lf ivprobit ivprobit_p ivreg ivreg_footnote ivtob_1_lf ivtob_lf ivtobit ivtobit_p jackknife jacknife jknife jknife_6 jknife_8 jkstat joinby kalarma1 kap kap_3 kapmeier kappa kapwgt kdensity kdensity_7 keep ksm ksmirnov ktau kwallis l la lab labe label labelbook ladder levels levelsof leverage lfit lfit_p li lincom line linktest lis list lloghet_glf lloghet_glf_sh lloghet_gp lloghet_ilf lloghet_ilf_sh lloghet_ip llogi_sw llogis_p llogist llogistic llogistichet lnorm_lf lnorm_sw lnorma_p lnormal lnormalhet lnormhet_glf lnormhet_glf_sh lnormhet_gp lnormhet_ilf lnormhet_ilf_sh lnormhet_ip lnskew0 loadingplot loc loca local log logi logis_lf logistic logistic_p logit logit_estat logit_p loglogs logrank loneway lookfor lookup lowess lowess_7 lpredict lrecomp lroc lroc_7 lrtest ls lsens lsens_7 lsens_x lstat ltable ltable_7 ltriang lv lvr2plot lvr2plot_7 m ma mac macr macro makecns man manova manova_estat manova_p manovatest mantel mark markin markout marksample mat mat_capp mat_order mat_put_rr mat_rapp mata mata_clear mata_describe mata_drop mata_matdescribe mata_matsave mata_matuse mata_memory mata_mlib mata_mosave mata_rename mata_which matalabel matcproc matlist matname matr matri matrix matrix_input__dlg matstrik mcc mcci md0_ md1_ md1debug_ md2_ md2debug_ mds mds_estat mds_p mdsconfig mdslong mdsmat mdsshepard mdytoe mdytof me_derd mean means median memory memsize meqparse mer merg merge mfp mfx mhelp mhodds minbound mixed_ll mixed_ll_reparm mkassert mkdir mkmat mkspline ml ml_5 ml_adjs ml_bhhhs ml_c_d ml_check ml_clear ml_cnt ml_debug ml_defd ml_e0 ml_e0_bfgs ml_e0_cycle ml_e0_dfp ml_e0i ml_e1 ml_e1_bfgs ml_e1_bhhh ml_e1_cycle ml_e1_dfp ml_e2 ml_e2_cycle ml_ebfg0 ml_ebfr0 ml_ebfr1 ml_ebh0q ml_ebhh0 ml_ebhr0 ml_ebr0i ml_ecr0i ml_edfp0 ml_edfr0 ml_edfr1 ml_edr0i ml_eds ml_eer0i ml_egr0i ml_elf ml_elf_bfgs ml_elf_bhhh ml_elf_cycle ml_elf_dfp ml_elfi ml_elfs ml_enr0i ml_enrr0 ml_erdu0 ml_erdu0_bfgs ml_erdu0_bhhh ml_erdu0_bhhhq ml_erdu0_cycle ml_erdu0_dfp ml_erdu0_nrbfgs ml_exde ml_footnote ml_geqnr ml_grad0 ml_graph ml_hbhhh ml_hd0 ml_hold ml_init ml_inv ml_log ml_max ml_mlout ml_mlout_8 ml_model ml_nb0 ml_opt ml_p ml_plot ml_query ml_rdgrd ml_repor ml_s_e ml_score ml_searc ml_technique ml_unhold mleval mlf_ mlmatbysum mlmatsum mlog mlogi mlogit mlogit_footnote mlogit_p mlopts mlsum mlvecsum mnl0_ mor more mov move mprobit mprobit_lf mprobit_p mrdu0_ mrdu1_ mvdecode mvencode mvreg mvreg_estat n nbreg nbreg_al nbreg_lf nbreg_p nbreg_sw nestreg net newey newey_7 newey_p news nl nl_7 nl_9 nl_9_p nl_p nl_p_7 nlcom nlcom_p nlexp2 nlexp2_7 nlexp2a nlexp2a_7 nlexp3 nlexp3_7 nlgom3 nlgom3_7 nlgom4 nlgom4_7 nlinit nllog3 nllog3_7 nllog4 nllog4_7 nlog_rd nlogit nlogit_p nlogitgen nlogittree nlpred no nobreak noi nois noisi noisil noisily note notes notes_dlg nptrend numlabel numlist odbc old_ver olo olog ologi ologi_sw ologit ologit_p ologitp on one onew onewa oneway op_colnm op_comp op_diff op_inv op_str opr opro oprob oprob_sw oprobi oprobi_p oprobit oprobitp opts_exclusive order orthog orthpoly ou out outf outfi outfil outfile outs outsh outshe outshee outsheet ovtest pac pac_7 palette parse parse_dissim pause pca pca_8 pca_display pca_estat pca_p pca_rotate pcamat pchart pchart_7 pchi pchi_7 pcorr pctile pentium pergram pergram_7 permute permute_8 personal peto_st pkcollapse pkcross pkequiv pkexamine pkexamine_7 pkshape pksumm pksumm_7 pl plo plot plugin pnorm pnorm_7 poisgof poiss_lf poiss_sw poisso_p poisson poisson_estat post postclose postfile postutil pperron pr prais prais_e prais_e2 prais_p predict predictnl preserve print pro prob probi probit probit_estat probit_p proc_time procoverlay procrustes procrustes_estat procrustes_p profiler prog progr progra program prop proportion prtest prtesti pwcorr pwd q\\s qby qbys qchi qchi_7 qladder qladder_7 qnorm qnorm_7 qqplot qqplot_7 qreg qreg_c qreg_p qreg_sw qu quadchk quantile quantile_7 que quer query range ranksum ratio rchart rchart_7 rcof recast reclink recode reg reg3 reg3_p regdw regr regre regre_p2 regres regres_p regress regress_estat regriv_p remap ren rena renam rename renpfix repeat replace report reshape restore ret retu retur return rm rmdir robvar roccomp roccomp_7 roccomp_8 rocf_lf rocfit rocfit_8 rocgold rocplot rocplot_7 roctab roctab_7 rolling rologit rologit_p rot rota rotat rotate rotatemat rreg rreg_p ru run runtest rvfplot rvfplot_7 rvpplot rvpplot_7 sa safesum sample sampsi sav save savedresults saveold sc sca scal scala scalar scatter scm_mine sco scob_lf scob_p scobi_sw scobit scor score scoreplot scoreplot_help scree screeplot screeplot_help sdtest sdtesti se search separate seperate serrbar serrbar_7 serset set set_defaults sfrancia sh she shel shell shewhart shewhart_7 signestimationsample signrank signtest simul simul_7 simulate simulate_8 sktest sleep slogit slogit_d2 slogit_p smooth snapspan so sor sort spearman spikeplot spikeplot_7 spikeplt spline_x split sqreg sqreg_p sret sretu sretur sreturn ssc st st_ct st_hc st_hcd st_hcd_sh st_is st_issys st_note st_promo st_set st_show st_smpl st_subid stack statsby statsby_8 stbase stci stci_7 stcox stcox_estat stcox_fr stcox_fr_ll stcox_p stcox_sw stcoxkm stcoxkm_7 stcstat stcurv stcurve stcurve_7 stdes stem stepwise stereg stfill stgen stir stjoin stmc stmh stphplot stphplot_7 stphtest stphtest_7 stptime strate strate_7 streg streg_sw streset sts sts_7 stset stsplit stsum sttocc sttoct stvary stweib su suest suest_8 sum summ summa summar summari summariz summarize sunflower sureg survcurv survsum svar svar_p svmat svy svy_disp svy_dreg svy_est svy_est_7 svy_estat svy_get svy_gnbreg_p svy_head svy_header svy_heckman_p svy_heckprob_p svy_intreg_p svy_ivreg_p svy_logistic_p svy_logit_p svy_mlogit_p svy_nbreg_p svy_ologit_p svy_oprobit_p svy_poisson_p svy_probit_p svy_regress_p svy_sub svy_sub_7 svy_x svy_x_7 svy_x_p svydes svydes_8 svygen svygnbreg svyheckman svyheckprob svyintreg svyintreg_7 svyintrg svyivreg svylc svylog_p svylogit svymarkout svymarkout_8 svymean svymlog svymlogit svynbreg svyolog svyologit svyoprob svyoprobit svyopts svypois svypois_7 svypoisson svyprobit svyprobt svyprop svyprop_7 svyratio svyreg svyreg_p svyregress svyset svyset_7 svyset_8 svytab svytab_7 svytest svytotal sw sw_8 swcnreg swcox swereg swilk swlogis swlogit swologit swoprbt swpois swprobit swqreg swtobit swweib symmetry symmi symplot symplot_7 syntax sysdescribe sysdir sysuse szroeter ta tab tab1 tab2 tab_or tabd tabdi tabdis tabdisp tabi table tabodds tabodds_7 tabstat tabu tabul tabula tabulat tabulate te tempfile tempname tempvar tes test testnl testparm teststd tetrachoric time_it timer tis tob tobi tobit tobit_p tobit_sw token tokeni tokeniz tokenize tostring total translate translator transmap treat_ll treatr_p treatreg trim trnb_cons trnb_mean trpoiss_d2 trunc_ll truncr_p truncreg tsappend tset tsfill tsline tsline_ex tsreport tsrevar tsrline tsset tssmooth tsunab ttest ttesti tut_chk tut_wait tutorial tw tware_st two twoway twoway__fpfit_serset twoway__function_gen twoway__histogram_gen twoway__ipoint_serset twoway__ipoints_serset twoway__kdensity_gen twoway__lfit_serset twoway__normgen_gen twoway__pci_serset twoway__qfit_serset twoway__scatteri_serset twoway__sunflower_gen twoway_ksm_serset ty typ type typeof u unab unabbrev unabcmd update us use uselabel var var_mkcompanion var_p varbasic varfcast vargranger varirf varirf_add varirf_cgraph varirf_create varirf_ctable varirf_describe varirf_dir varirf_drop varirf_erase varirf_graph varirf_ograph varirf_rename varirf_set varirf_table varlist varlmar varnorm varsoc varstable varstable_w varstable_w2 varwle vce vec vec_fevd vec_mkphi vec_p vec_p_w vecirf_create veclmar veclmar_w vecnorm vecnorm_w vecrank vecstable verinst vers versi versio version view viewsource vif vwls wdatetof webdescribe webseek webuse weib1_lf weib2_lf weib_lf weib_lf0 weibhet_glf weibhet_glf_sh weibhet_glfa weibhet_glfa_sh weibhet_gp weibhet_ilf weibhet_ilf_sh weibhet_ilfa weibhet_ilfa_sh weibhet_ip weibu_sw weibul_p weibull weibull_c weibull_s weibullhet wh whelp whi which whil while wilc_st wilcoxon win wind windo window winexec wntestb wntestb_7 wntestq xchart xchart_7 xcorr xcorr_7 xi xi_6 xmlsav xmlsave xmluse xpose xsh xshe xshel xshell xt_iis xt_tis xtab_p xtabond xtbin_p xtclog xtcloglog xtcloglog_8 xtcloglog_d2 xtcloglog_pa_p xtcloglog_re_p xtcnt_p xtcorr xtdata xtdes xtfront_p xtfrontier xtgee xtgee_elink xtgee_estat xtgee_makeivar xtgee_p xtgee_plink xtgls xtgls_p xthaus xthausman xtht_p xthtaylor xtile xtint_p xtintreg xtintreg_8 xtintreg_d2 xtintreg_p xtivp_1 xtivp_2 xtivreg xtline xtline_ex xtlogit xtlogit_8 xtlogit_d2 xtlogit_fe_p xtlogit_pa_p xtlogit_re_p xtmixed xtmixed_estat xtmixed_p xtnb_fe xtnb_lf xtnbreg xtnbreg_pa_p xtnbreg_refe_p xtpcse xtpcse_p xtpois xtpoisson xtpoisson_d2 xtpoisson_pa_p xtpoisson_refe_p xtpred xtprobit xtprobit_8 xtprobit_d2 xtprobit_re_p xtps_fe xtps_lf xtps_ren xtps_ren_8 xtrar_p xtrc xtrc_p xtrchh xtrefe_p xtreg xtreg_be xtreg_fe xtreg_ml xtreg_pa_p xtreg_re xtregar xtrere_p xtset xtsf_ll xtsf_llti xtsum xttab xttest0 xttobit xttobit_8 xttobit_p xttrans yx yxview__barlike_draw yxview_area_draw yxview_bar_draw yxview_dot_draw yxview_dropline_draw yxview_function_draw yxview_iarrow_draw yxview_ilabels_draw yxview_normal_draw yxview_pcarrow_draw yxview_pcbarrow_draw yxview_pccapsym_draw yxview_pcscatter_draw yxview_pcspike_draw yxview_rarea_draw yxview_rbar_draw yxview_rbarm_draw yxview_rcap_draw yxview_rcapsym_draw yxview_rconnected_draw yxview_rline_draw yxview_rscatter_draw yxview_rspike_draw yxview_spike_draw yxview_sunflower_draw zap_s zinb zinb_llf zinb_plf zip zip_llf zip_p zip_plf zt_ct_5 zt_hc_5 zt_hcd_5 zt_is_5 zt_iss_5 zt_sho_5 zt_smp_5 ztbase_5 ztcox_5 ztdes_5 ztereg_5 ztfill_5 ztgen_5 ztir_5 ztjoin_5 ztnb ztnb_p ztp ztp_p zts_5 ztset_5 ztspli_5 ztsum_5 zttoct_5 ztvary_5 ztweib_5",contains:[{className:"label",variants:[{begin:"\\$\\{?[a-zA-Z0-9_]+\\}?"},{begin:"`[a-zA-Z0-9_]+'"}]},{className:"string",variants:[{begin:'`"[^\r\n]*?"\''},{begin:'"[^\r\n"]*"'}]},{className:"literal",variants:[{begin:"\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\(|$)"}]},a.COMMENT("^[ 	]*\\*.*$",!1),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]}}),a.registerLanguage("step21",function(a){var b="[A-Z_][A-Z0-9_.]*",c="END-ISO-10303-21;",d={literal:"",built_in:"",keyword:"HEADER ENDSEC DATA"},e={className:"preprocessor",begin:"ISO-10303-21;",relevance:10},f=[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.COMMENT("/\\*\\*!","\\*/"),a.C_NUMBER_MODE,a.inherit(a.APOS_STRING_MODE,{illegal:null}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"'",end:"'"},{className:"label",variants:[{begin:"#",end:"\\d+",illegal:"\\W"}]}];return{aliases:["p21","step","stp"],case_insensitive:!0,lexemes:b,keywords:d,contains:[{className:"preprocessor",begin:c,relevance:10},e].concat(f)}}),a.registerLanguage("stylus",function(a){var b={className:"variable",begin:"\\$"+a.IDENT_RE},c={className:"hexcolor",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})",relevance:10},d=["charset","css","debug","extend","font-face","for","import","include","media","mixin","page","warn","while"],e=["after","before","first-letter","first-line","active","first-child","focus","hover","lang","link","visited"],f=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],g="[\\.\\s\\n\\[\\:,]",h=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-variant-ligatures","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"],i=["\\{","\\}","\\?","(\\bReturn\\b)","(\\bEnd\\b)","(\\bend\\b)",";","#\\s","\\*\\s","===\\s","\\|","%"];
+invalidCsv:"Tiedostoa ei voitu käsitellä, oliko se CSV-muodossa?",invalidJson:"Tiedostoa ei voitu käsitellä, oliko se JSON-muodossa?",jsonNotArray:"Tiedosto ei sisältänyt taulukkoa, lopetetaan."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("fr",{aggregate:{label:"éléments"},groupPanel:{description:"Faites glisser une en-tête de colonne ici pour créer un groupe de colonnes."},search:{placeholder:"Recherche...",showingItems:"Affichage des éléments :",selectedItems:"Éléments sélectionnés :",totalItems:"Nombre total d'éléments:",size:"Taille de page:",first:"Première page",next:"Page Suivante",previous:"Page précédente",last:"Dernière page"},menu:{text:"Choisir des colonnes :"},sort:{ascending:"Trier par ordre croissant",descending:"Trier par ordre décroissant",remove:"Enlever le tri"},column:{hide:"Cacher la colonne"},aggregation:{count:"lignes totales: ",sum:"total: ",avg:"moy: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Épingler à gauche",pinRight:"Épingler à droite",unpin:"Détacher"},gridMenu:{columns:"Colonnes:",importerTitle:"Importer un fichier",exporterAllAsCsv:"Exporter toutes les données en CSV",exporterVisibleAsCsv:"Exporter les données visibles en CSV",exporterSelectedAsCsv:"Exporter les données sélectionnées en CSV",exporterAllAsPdf:"Exporter toutes les données en PDF",exporterVisibleAsPdf:"Exporter les données visibles en PDF",exporterSelectedAsPdf:"Exporter les données sélectionnées en PDF",clearAllFilters:"Nettoyez tous les filtres"},importer:{noHeaders:"Impossible de déterminer le nom des colonnes, le fichier possède-t-il une en-tête ?",noObjects:"Aucun objet trouvé, le fichier possède-t-il des données autres que l'en-tête ?",invalidCsv:"Le fichier n'a pas pu être traité, le CSV est-il valide ?",invalidJson:"Le fichier n'a pas pu être traité, le JSON est-il valide ?",jsonNotArray:"Le fichier JSON importé doit contenir un tableau, abandon."},pagination:{sizes:"éléments par page",totalItems:"éléments",of:"sur"},grouping:{group:"Grouper",ungroup:"Dégrouper",aggregate_count:"Agg: Compte",aggregate_sum:"Agg: Somme",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Moy",aggregate_remove:"Agg: Retirer"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("he",{aggregate:{label:"items"},groupPanel:{description:"גרור עמודה לכאן ושחרר בכדי לקבץ עמודה זו."},search:{placeholder:"חפש...",showingItems:"מציג:",selectedItems:'סה"כ נבחרו:',totalItems:'סה"כ רשומות:',size:"תוצאות בדף:",first:"דף ראשון",next:"דף הבא",previous:"דף קודם",last:"דף אחרון"},menu:{text:"בחר עמודות:"},sort:{ascending:"סדר עולה",descending:"סדר יורד",remove:"בטל"},column:{hide:"טור הסתר"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clean all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("hy",{aggregate:{label:"տվյալներ"},groupPanel:{description:"Ըստ սյան խմբավորելու համար քաշեք և գցեք վերնագիրն այստեղ։"},search:{placeholder:"Փնտրում...",showingItems:"Ցուցադրված տվյալներ՝",selectedItems:"Ընտրված:",totalItems:"Ընդամենը՝",size:"Տողերի քանակը էջում՝",first:"Առաջին էջ",next:"Հաջորդ էջ",previous:"Նախորդ էջ",last:"Վերջին էջ"},menu:{text:"Ընտրել սյուները:"},sort:{ascending:"Աճման կարգով",descending:"Նվազման կարգով",remove:"Հանել "},column:{hide:"Թաքցնել սյունը"},aggregation:{count:"ընդամենը տող՝ ",sum:"ընդամենը՝ ",avg:"միջին՝ ",min:"մին՝ ",max:"մաքս՝ "},pinning:{pinLeft:"Կպցնել ձախ կողմում",pinRight:"Կպցնել աջ կողմում",unpin:"Արձակել"},gridMenu:{columns:"Սյուներ:",importerTitle:"Ներմուծել ֆայլ",exporterAllAsCsv:"Արտահանել ամբողջը CSV",exporterVisibleAsCsv:"Արտահանել երևացող տվյալները CSV",exporterSelectedAsCsv:"Արտահանել ընտրված տվյալները CSV",exporterAllAsPdf:"Արտահանել PDF",exporterVisibleAsPdf:"Արտահանել երևացող տվյալները PDF",exporterSelectedAsPdf:"Արտահանել ընտրված տվյալները PDF",clearAllFilters:"Մաքրել բոլոր ֆիլտրերը"},importer:{noHeaders:"Հնարավոր չեղավ որոշել սյան վերնագրերը։ Արդյո՞ք ֆայլը ունի վերնագրեր։",noObjects:"Հնարավոր չեղավ կարդալ տվյալները։ Արդյո՞ք ֆայլում կան տվյալներ։",invalidCsv:"Հնարավոր չեղավ մշակել ֆայլը։ Արդյո՞ք այն վավեր CSV է։",invalidJson:"Հնարավոր չեղավ մշակել ֆայլը։ Արդյո՞ք այն վավեր Json է։",jsonNotArray:"Ներմուծված json ֆայլը պետք է պարունակի զանգված, կասեցվում է։"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("it",{aggregate:{label:"elementi"},groupPanel:{description:"Trascina un'intestazione all'interno del gruppo della colonna."},search:{placeholder:"Ricerca...",showingItems:"Mostra:",selectedItems:"Selezionati:",totalItems:"Totali:",size:"Tot Pagine:",first:"Prima",next:"Prossima",previous:"Precedente",last:"Ultima"},menu:{text:"Scegli le colonne:"},sort:{ascending:"Asc.",descending:"Desc.",remove:"Annulla ordinamento"},column:{hide:"Nascondi"},aggregation:{count:"righe totali: ",sum:"tot: ",avg:"media: ",min:"minimo: ",max:"massimo: "},pinning:{pinLeft:"Blocca a sx",pinRight:"Blocca a dx",unpin:"Blocca in alto"},gridMenu:{columns:"Colonne:",importerTitle:"Importa",exporterAllAsCsv:"Esporta tutti i dati in CSV",exporterVisibleAsCsv:"Esporta i dati visibili in CSV",exporterSelectedAsCsv:"Esporta i dati selezionati in CSV",exporterAllAsPdf:"Esporta tutti i dati in PDF",exporterVisibleAsPdf:"Esporta i dati visibili in PDF",exporterSelectedAsPdf:"Esporta i dati selezionati in PDF",clearAllFilters:"Pulire tutti i filtri"},importer:{noHeaders:"Impossibile reperire i nomi delle colonne, sicuro che siano indicati all'interno del file?",noObjects:"Impossibile reperire gli oggetti, sicuro che siano indicati all'interno del file?",invalidCsv:"Impossibile elaborare il file, sicuro che sia un CSV?",invalidJson:"Impossibile elaborare il file, sicuro che sia un JSON valido?",jsonNotArray:"Errore! Il file JSON da importare deve contenere un array."},grouping:{group:"Raggruppa",ungroup:"Separa",aggregate_count:"Agg: N. Elem.",aggregate_sum:"Agg: Somma",aggregate_max:"Agg: Massimo",aggregate_min:"Agg: Minimo",aggregate_avg:"Agg: Media",aggregate_remove:"Agg: Rimuovi"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ja",{aggregate:{label:"項目"},groupPanel:{description:"ここに列ヘッダをドラッグアンドドロップして、その列でグループ化します。"},search:{placeholder:"検索...",showingItems:"表示中の項目:",selectedItems:"選択した項目:",totalItems:"項目の総数:",size:"ページサイズ:",first:"最初のページ",next:"次のページ",previous:"前のページ",last:"前のページ"},menu:{text:"列の選択:"},sort:{ascending:"昇順に並べ替え",descending:"降順に並べ替え",remove:"並べ替えの解除"},column:{hide:"列の非表示"},aggregation:{count:"合計行数: ",sum:"合計: ",avg:"平均: ",min:"最小: ",max:"最大: "},pinning:{pinLeft:"左に固定",pinRight:"右に固定",unpin:"固定解除"},gridMenu:{columns:"列:",importerTitle:"ファイルのインポート",exporterAllAsCsv:"すべてのデータをCSV形式でエクスポート",exporterVisibleAsCsv:"表示中のデータをCSV形式でエクスポート",exporterSelectedAsCsv:"選択したデータをCSV形式でエクスポート",exporterAllAsPdf:"すべてのデータをPDF形式でエクスポート",exporterVisibleAsPdf:"表示中のデータをPDF形式でエクスポート",exporterSelectedAsPdf:"選択したデータをPDF形式でエクスポート",clearAllFilters:"すべてのフィルタを清掃してください"},importer:{noHeaders:"列名を取得できません。ファイルにヘッダが含まれていることを確認してください。",noObjects:"オブジェクトを取得できません。ファイルにヘッダ以外のデータが含まれていることを確認してください。",invalidCsv:"ファイルを処理できません。ファイルが有効なCSV形式であることを確認してください。",invalidJson:"ファイルを処理できません。ファイルが有効なJSON形式であることを確認してください。",jsonNotArray:"インポートしたJSONファイルには配列が含まれている必要があります。処理を中止します。"},pagination:{sizes:"項目/ページ",totalItems:"項目"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ko",{aggregate:{label:"아이템"},groupPanel:{description:"컬럼으로 그룹핑하기 위해서는 컬럼 헤더를 끌어 떨어뜨려 주세요."},search:{placeholder:"검색...",showingItems:"항목 보여주기:",selectedItems:"선택 항목:",totalItems:"전체 항목:",size:"페이지 크기:",first:"첫번째 페이지",next:"다음 페이지",previous:"이전 페이지",last:"마지막 페이지"},menu:{text:"컬럼을 선택하세요:"},sort:{ascending:"오름차순 정렬",descending:"내림차순 정렬",remove:"소팅 제거"},column:{hide:"컬럼 제거"},aggregation:{count:"전체 갯수: ",sum:"전체: ",avg:"평균: ",min:"최소: ",max:"최대: "},pinning:{pinLeft:"왼쪽 핀",pinRight:"오른쪽 핀",unpin:"핀 제거"},gridMenu:{columns:"컬럼:",importerTitle:"파일 가져오기",exporterAllAsCsv:"csv로 모든 데이터 내보내기",exporterVisibleAsCsv:"csv로 보이는 데이터 내보내기",exporterSelectedAsCsv:"csv로 선택된 데이터 내보내기",exporterAllAsPdf:"pdf로 모든 데이터 내보내기",exporterVisibleAsPdf:"pdf로 보이는 데이터 내보내기",exporterSelectedAsPdf:"pdf로 선택 데이터 내보내기",clearAllFilters:"모든 필터를 청소"},importer:{noHeaders:"컬럼명이 지정되어 있지 않습니다. 파일에 헤더가 명시되어 있는지 확인해 주세요.",noObjects:"데이터가 지정되어 있지 않습니다. 데이터가 파일에 있는지 확인해 주세요.",invalidCsv:"파일을 처리할 수 없습니다. 올바른 csv인지 확인해 주세요.",invalidJson:"파일을 처리할 수 없습니다. 올바른 json인지 확인해 주세요.",jsonNotArray:"json 파일은 배열을 포함해야 합니다."},pagination:{sizes:"페이지당 항목",totalItems:"전체 항목"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("nl",{aggregate:{label:"items"},groupPanel:{description:"Sleep hier een kolomnaam heen om op te groeperen."},search:{placeholder:"Zoeken...",showingItems:"Getoonde items:",selectedItems:"Geselecteerde items:",totalItems:"Totaal aantal items:",size:"Items per pagina:",first:"Eerste pagina",next:"Volgende pagina",previous:"Vorige pagina",last:"Laatste pagina"},menu:{text:"Kies kolommen:"},sort:{ascending:"Sorteer oplopend",descending:"Sorteer aflopend",remove:"Verwijder sortering"},column:{hide:"Verberg kolom"},aggregation:{count:"Aantal rijen: ",sum:"Som: ",avg:"Gemiddelde: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Zet links vast",pinRight:"Zet rechts vast",unpin:"Maak los"},gridMenu:{columns:"Kolommen:",importerTitle:"Importeer bestand",exporterAllAsCsv:"Exporteer alle data als csv",exporterVisibleAsCsv:"Exporteer zichtbare data als csv",exporterSelectedAsCsv:"Exporteer geselecteerde data als csv",exporterAllAsPdf:"Exporteer alle data als pdf",exporterVisibleAsPdf:"Exporteer zichtbare data als pdf",exporterSelectedAsPdf:"Exporteer geselecteerde data als pdf",clearAllFilters:"Reinig alle filters"},importer:{noHeaders:"Kolomnamen kunnen niet worden afgeleid. Heeft het bestand een header?",noObjects:"Objecten kunnen niet worden afgeleid. Bevat het bestand data naast de headers?",invalidCsv:"Het bestand kan niet verwerkt worden. Is het een valide csv bestand?",invalidJson:"Het bestand kan niet verwerkt worden. Is het valide json?",jsonNotArray:"Het json bestand moet een array bevatten. De actie wordt geannuleerd."},pagination:{sizes:"items per pagina",totalItems:"items",of:"van de"},grouping:{group:"Groepeer",ungroup:"Groepering opheffen",aggregate_count:"Agg: Aantal",aggregate_sum:"Agg: Som",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Gem",aggregate_remove:"Agg: Verwijder"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("pt-br",{aggregate:{label:"itens"},groupPanel:{description:"Arraste e solte uma coluna aqui para agrupar por essa coluna"},search:{placeholder:"Procurar...",showingItems:"Mostrando os Itens:",selectedItems:"Items Selecionados:",totalItems:"Total de Itens:",size:"Tamanho da Página:",first:"Primeira Página",next:"Próxima Página",previous:"Página Anterior",last:"Última Página"},menu:{text:"Selecione as colunas:"},sort:{ascending:"Ordenar Ascendente",descending:"Ordenar Descendente",remove:"Remover Ordenação"},column:{hide:"Esconder coluna"},aggregation:{count:"total de linhas: ",sum:"total: ",avg:"med: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Fixar Esquerda",pinRight:"Fixar Direita",unpin:"Desprender"},gridMenu:{columns:"Colunas:",importerTitle:"Importar arquivo",exporterAllAsCsv:"Exportar todos os dados como csv",exporterVisibleAsCsv:"Exportar dados visíveis como csv",exporterSelectedAsCsv:"Exportar dados selecionados como csv",exporterAllAsPdf:"Exportar todos os dados como pdf",exporterVisibleAsPdf:"Exportar dados visíveis como pdf",exporterSelectedAsPdf:"Exportar dados selecionados como pdf",clearAllFilters:"Limpar todos os filtros"},importer:{noHeaders:"Nomes de colunas não puderam ser derivados. O arquivo tem um cabeçalho?",noObjects:"Objetos não puderam ser derivados. Havia dados no arquivo, além dos cabeçalhos?",invalidCsv:"Arquivo não pode ser processado. É um CSV válido?",invalidJson:"Arquivo não pode ser processado. É um Json válido?",jsonNotArray:"Arquivo json importado tem que conter um array. Abortando."},pagination:{sizes:"itens por página",totalItems:"itens"},grouping:{group:"Agrupar",ungroup:"Desagrupar",aggregate_count:"Agr: Contar",aggregate_sum:"Agr: Soma",aggregate_max:"Agr: Max",aggregate_min:"Agr: Min",aggregate_avg:"Agr: Med",aggregate_remove:"Agr: Remover"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("pt",{aggregate:{label:"itens"},groupPanel:{description:"Arraste e solte uma coluna aqui para agrupar por essa coluna"},search:{placeholder:"Procurar...",showingItems:"Mostrando os Itens:",selectedItems:"Itens Selecionados:",totalItems:"Total de Itens:",size:"Tamanho da Página:",first:"Primeira Página",next:"Próxima Página",previous:"Página Anterior",last:"Última Página"},menu:{text:"Selecione as colunas:"},sort:{ascending:"Ordenar Ascendente",descending:"Ordenar Descendente",remove:"Remover Ordenação"},column:{hide:"Esconder coluna"},aggregation:{count:"total de linhas: ",sum:"total: ",avg:"med: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Fixar Esquerda",pinRight:"Fixar Direita",unpin:"Desprender"},gridMenu:{columns:"Colunas:",importerTitle:"Importar ficheiro",exporterAllAsCsv:"Exportar todos os dados como csv",exporterVisibleAsCsv:"Exportar dados visíveis como csv",exporterSelectedAsCsv:"Exportar dados selecionados como csv",exporterAllAsPdf:"Exportar todos os dados como pdf",exporterVisibleAsPdf:"Exportar dados visíveis como pdf",exporterSelectedAsPdf:"Exportar dados selecionados como pdf",clearAllFilters:"Limpar todos os filtros"},importer:{noHeaders:"Nomes de colunas não puderam ser derivados. O ficheiro tem um cabeçalho?",noObjects:"Objetos não puderam ser derivados. Havia dados no ficheiro, além dos cabeçalhos?",invalidCsv:"Ficheiro não pode ser processado. É um CSV válido?",invalidJson:"Ficheiro não pode ser processado. É um Json válido?",jsonNotArray:"Ficheiro json importado tem que conter um array. Interrompendo."},pagination:{sizes:"itens por página",totalItems:"itens",of:"de"},grouping:{group:"Agrupar",ungroup:"Desagrupar",aggregate_count:"Agr: Contar",aggregate_sum:"Agr: Soma",aggregate_max:"Agr: Max",aggregate_min:"Agr: Min",aggregate_avg:"Agr: Med",aggregate_remove:"Agr: Remover"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ru",{aggregate:{label:"элементы"},groupPanel:{description:"Для группировки по столбцу перетащите сюда его название."},search:{placeholder:"Поиск...",showingItems:"Показать элементы:",selectedItems:"Выбранные элементы:",totalItems:"Всего элементов:",size:"Размер страницы:",first:"Первая страница",next:"Следующая страница",previous:"Предыдущая страница",last:"Последняя страница"},menu:{text:"Выбрать столбцы:"},sort:{ascending:"По возрастанию",descending:"По убыванию",remove:"Убрать сортировку"},column:{hide:"Спрятать столбец"},aggregation:{count:"всего строк: ",sum:"итого: ",avg:"среднее: ",min:"мин: ",max:"макс: "},pinning:{pinLeft:"Закрепить слева",pinRight:"Закрепить справа",unpin:"Открепить"},gridMenu:{columns:"Столбцы:",importerTitle:"Import file",exporterAllAsCsv:"Экспортировать всё в CSV",exporterVisibleAsCsv:"Экспортировать видимые данные в CSV",exporterSelectedAsCsv:"Экспортировать выбранные данные в CSV",exporterAllAsPdf:"Экспортировать всё в PDF",exporterVisibleAsPdf:"Экспортировать видимые данные в PDF",exporterSelectedAsPdf:"Экспортировать выбранные данные в PDF",clearAllFilters:"Очистите все фильтры"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("sk",{aggregate:{label:"items"},groupPanel:{description:"Pretiahni sem názov stĺpca pre zoskupenie podľa toho stĺpca."},search:{placeholder:"Hľadaj...",showingItems:"Zobrazujem položky:",selectedItems:"Vybraté položky:",totalItems:"Počet položiek:",size:"Počet:",first:"Prvá strana",next:"Ďalšia strana",previous:"Predchádzajúca strana",last:"Posledná strana"},menu:{text:"Vyberte stĺpce:"},sort:{ascending:"Zotriediť vzostupne",descending:"Zotriediť zostupne",remove:"Vymazať triedenie"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("sv",{aggregate:{label:"Artiklar"},groupPanel:{description:"Dra en kolumnrubrik hit och släpp den för att gruppera efter den kolumnen."},search:{placeholder:"Sök...",showingItems:"Visar artiklar:",selectedItems:"Valda artiklar:",totalItems:"Antal artiklar:",size:"Sidstorlek:",first:"Första sidan",next:"Nästa sida",previous:"Föregående sida",last:"Sista sidan"},menu:{text:"Välj kolumner:"},sort:{ascending:"Sortera stigande",descending:"Sortera fallande",remove:"Inaktivera sortering"},column:{hide:"Göm kolumn"},aggregation:{count:"Antal rader: ",sum:"Summa: ",avg:"Genomsnitt: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Fäst vänster",pinRight:"Fäst höger",unpin:"Lösgör"},gridMenu:{columns:"Kolumner:",importerTitle:"Importera fil",exporterAllAsCsv:"Exportera all data som CSV",exporterVisibleAsCsv:"Exportera synlig data som CSV",exporterSelectedAsCsv:"Exportera markerad data som CSV",exporterAllAsPdf:"Exportera all data som PDF",exporterVisibleAsPdf:"Exportera synlig data som PDF",exporterSelectedAsPdf:"Exportera markerad data som PDF",clearAllFilters:"Rengör alla filter"},importer:{noHeaders:"Kolumnnamn kunde inte härledas. Har filen ett sidhuvud?",noObjects:"Objekt kunde inte härledas. Har filen data undantaget sidhuvud?",invalidCsv:"Filen kunde inte behandlas, är den en giltig CSV?",invalidJson:"Filen kunde inte behandlas, är den en giltig JSON?",jsonNotArray:"Importerad JSON-fil måste innehålla ett fält. Import avbruten."},pagination:{sizes:"Artiklar per sida",totalItems:"Artiklar"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ta",{aggregate:{label:"உருப்படிகள்"},groupPanel:{description:"ஒரு பத்தியை குழுவாக அமைக்க அப்பத்தியின் தலைப்பை இங்கே  இழுத்து வரவும் "},search:{placeholder:"தேடல் ...",showingItems:"உருப்படிகளை காண்பித்தல்:",selectedItems:"தேர்ந்தெடுக்கப்பட்ட  உருப்படிகள்:",totalItems:"மொத்த உருப்படிகள்:",size:"பக்க அளவு: ",first:"முதல் பக்கம்",next:"அடுத்த பக்கம்",previous:"முந்தைய பக்கம் ",last:"இறுதி பக்கம்"},menu:{text:"பத்திகளை தேர்ந்தெடு:"},sort:{ascending:"மேலிருந்து கீழாக",descending:"கீழிருந்து மேலாக",remove:"வரிசையை நீக்கு"},column:{hide:"பத்தியை மறைத்து வை "},aggregation:{count:"மொத்த வரிகள்:",sum:"மொத்தம்: ",avg:"சராசரி: ",min:"குறைந்தபட்ச: ",max:"அதிகபட்ச: "},pinning:{pinLeft:"இடதுபுறமாக தைக்க ",pinRight:"வலதுபுறமாக தைக்க",unpin:"பிரி"},gridMenu:{columns:"பத்திகள்:",importerTitle:"கோப்பு : படித்தல்",exporterAllAsCsv:"எல்லா தரவுகளையும் கோப்பாக்கு: csv",exporterVisibleAsCsv:"இருக்கும் தரவுகளை கோப்பாக்கு: csv",exporterSelectedAsCsv:"தேர்ந்தெடுத்த தரவுகளை கோப்பாக்கு: csv",exporterAllAsPdf:"எல்லா தரவுகளையும் கோப்பாக்கு: pdf",exporterVisibleAsPdf:"இருக்கும் தரவுகளை கோப்பாக்கு: pdf",exporterSelectedAsPdf:"தேர்ந்தெடுத்த தரவுகளை கோப்பாக்கு: pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"பத்தியின் தலைப்புகளை பெற இயலவில்லை, கோப்பிற்கு தலைப்பு உள்ளதா?",noObjects:"இலக்குகளை உருவாக்க முடியவில்லை, கோப்பில் தலைப்புகளை தவிர தரவு ஏதேனும் உள்ளதா? ",invalidCsv:"சரிவர நடைமுறை படுத்த இயலவில்லை, கோப்பு சரிதானா? - csv",invalidJson:"சரிவர நடைமுறை படுத்த இயலவில்லை, கோப்பு சரிதானா? - json",jsonNotArray:"படித்த கோப்பில் வரிசைகள் உள்ளது, நடைமுறை ரத்து செய் : json"},pagination:{sizes:"உருப்படிகள் / பக்கம்",totalItems:"உருப்படிகள் "},grouping:{group:"குழு",ungroup:"பிரி",aggregate_count:"மதிப்பீட்டு : எண்ணு",aggregate_sum:"மதிப்பீட்டு : கூட்டல்",aggregate_max:"மதிப்பீட்டு : அதிகபட்சம்",aggregate_min:"மதிப்பீட்டு : குறைந்தபட்சம்",aggregate_avg:"மதிப்பீட்டு : சராசரி",aggregate_remove:"மதிப்பீட்டு : நீக்கு"}}),a}])}])}(),function(){var a=["uiT","uiTranslate"],b=["t","uiTranslate"],c=angular.module("ui.grid.i18n");c.constant("i18nConstants",{MISSING:"[MISSING]",UPDATE_EVENT:"$uiI18n",LOCALE_DIRECTIVE_ALIAS:"uiI18n",DEFAULT_LANG:"en"}),c.service("i18nService",["$log","i18nConstants","$rootScope",function(a,b,c){var d={_langs:{},current:null,get:function(a){return this._langs[a.toLowerCase()]},add:function(a,b){var c=a.toLowerCase();this._langs[c]||(this._langs[c]={}),angular.extend(this._langs[c],b)},getAllLangs:function(){var a=[];if(!this._langs)return a;for(var b in this._langs)a.push(b);return a},setCurrent:function(a){this.current=a.toLowerCase()},getCurrentLang:function(){return this.current}},e={add:function(a,b){"object"==typeof a?angular.forEach(a,function(a){a&&d.add(a,b)}):d.add(a,b)},getAllLangs:function(){return d.getAllLangs()},get:function(a){var b=a?a:e.getCurrentLang();return d.get(b)},getSafeText:function(a,c){var f=c?c:e.getCurrentLang(),g=d.get(f);if(!g)return b.MISSING;for(var h=a.split("."),i=g,j=0;j<h.length;++j){if(void 0===i[h[j]]||null===i[h[j]])return b.MISSING;i=i[h[j]]}return i},setCurrentLang:function(a){a&&(d.setCurrent(a),c.$broadcast(b.UPDATE_EVENT))},getCurrentLang:function(){var a=d.getCurrentLang();return a||(a=b.DEFAULT_LANG,d.setCurrent(a)),a}};return e}]);var d=function(a,b){return{compile:function(){return{pre:function(c,d,e){var f=b.LOCALE_DIRECTIVE_ALIAS,g=c.$eval(e[f]);g?c.$watch(e[f],function(){a.setCurrentLang(g)}):e.$$observers&&e.$observe(f,function(){a.setCurrentLang(e[f]||b.DEFAULT_LANG)})}}}}};c.directive("uiI18n",["i18nService","i18nConstants",d]);var e=function(b,c,d){return{restrict:"EA",compile:function(){return{pre:function(e,f,g){var h,i=a[0],j=a[1],k=g[i]||g[j]||f.html(),l=d.MISSING+k;if(g.$$observers){var m=g[i]?i:j;h=g.$observe(m,function(a){a&&f.html(b(a)(c.getCurrentLang())||l)})}var n=b(k),o=e.$on(d.UPDATE_EVENT,function(a){h?h(g[i]||g[j]):f.html(n(c.get())||l)});e.$on("$destroy",o),f.html(n(c.get())||l)}}}}};angular.forEach(a,function(a){c.directive(a,["$parse","i18nService","i18nConstants",e])});var f=function(a,b,c){return function(d){var e=a(d);return e(b.get())||c.MISSING+d}};angular.forEach(b,function(a){c.filter(a,["$parse","i18nService","i18nConstants",f])})}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("zh-cn",{headerCell:{aria:{defaultFilterLabel:"列过滤器",removeFilter:"移除过滤器",columnMenuButtonLabel:"列菜单"},priority:"优先级:",filterLabel:"列过滤器: "},aggregate:{label:"行"},groupPanel:{description:"拖曳表头到此处进行分组"},search:{placeholder:"查找",showingItems:"已显示行数：",selectedItems:"已选择行数：",totalItems:"总行数：",size:"每页显示行数：",first:"首页",next:"下一页",previous:"上一页",last:"末页"},menu:{text:"选择列："},sort:{ascending:"升序",descending:"降序",none:"无序",remove:"取消排序"},column:{hide:"隐藏列"},aggregation:{count:"计数：",sum:"求和：",avg:"均值：",min:"最小值：",max:"最大值："},pinning:{pinLeft:"左侧固定",pinRight:"右侧固定",unpin:"取消固定"},columnMenu:{close:"关闭"},gridMenu:{aria:{buttonLabel:"表格菜单"},columns:"列：",importerTitle:"导入文件",exporterAllAsCsv:"导出全部数据到CSV",exporterVisibleAsCsv:"导出可见数据到CSV",exporterSelectedAsCsv:"导出已选数据到CSV",exporterAllAsPdf:"导出全部数据到PDF",exporterVisibleAsPdf:"导出可见数据到PDF",exporterSelectedAsPdf:"导出已选数据到PDF",clearAllFilters:"清除所有过滤器"},importer:{noHeaders:"无法获取列名，确定文件包含表头？",noObjects:"无法获取数据，确定文件包含数据？",invalidCsv:"无法处理文件，确定是合法的CSV文件？",invalidJson:"无法处理文件，确定是合法的JSON文件？",jsonNotArray:"导入的文件不是JSON数组！"},pagination:{aria:{pageToFirst:"第一页",pageBack:"上一页",pageSelected:"当前页",pageForward:"下一页",pageToLast:"最后一页"},sizes:"行每页",totalItems:"行",through:"至",of:"共"},grouping:{group:"分组",ungroup:"取消分组",aggregate_count:"合计: 计数",aggregate_sum:"合计: 求和",aggregate_max:"合计: 最大",aggregate_min:"合计: 最小",aggregate_avg:"合计: 平均",aggregate_remove:"合计: 移除"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("zh-tw",{aggregate:{label:"行"},groupPanel:{description:"拖曳表頭到此處進行分組"},search:{placeholder:"查找",showingItems:"已顯示行數：",selectedItems:"已選擇行數：",totalItems:"總行數：",size:"每頁顯示行數：",first:"首頁",next:"下壹頁",previous:"上壹頁",last:"末頁"},menu:{text:"選擇列："},sort:{ascending:"升序",descending:"降序",remove:"取消排序"},column:{hide:"隱藏列"},aggregation:{count:"計數：",sum:"求和：",avg:"均值：",min:"最小值：",max:"最大值："},pinning:{pinLeft:"左側固定",pinRight:"右側固定",unpin:"取消固定"},gridMenu:{columns:"列：",importerTitle:"導入文件",exporterAllAsCsv:"導出全部數據到CSV",exporterVisibleAsCsv:"導出可見數據到CSV",exporterSelectedAsCsv:"導出已選數據到CSV",exporterAllAsPdf:"導出全部數據到PDF",exporterVisibleAsPdf:"導出可見數據到PDF",exporterSelectedAsPdf:"導出已選數據到PDF",clearAllFilters:"清除所有过滤器"},importer:{noHeaders:"無法獲取列名，確定文件包含表頭？",noObjects:"無法獲取數據，確定文件包含數據？",invalidCsv:"無法處理文件，確定是合法的CSV文件？",invalidJson:"無法處理文件，確定是合法的JSON文件？",jsonNotArray:"導入的文件不是JSON數組！"},pagination:{sizes:"行每頁",totalItems:"行"}}),a}])}])}(),function(){"use strict";var a=angular.module("ui.grid.autoResize",["ui.grid"]);a.directive("uiGridAutoResize",["$timeout","gridUtil",function(a,b){return{require:"uiGrid",scope:!1,link:function(a,c,d,e){function f(){i=b.elementHeight(c),h=b.elementWidth(c)}function g(){clearTimeout(j),j=setTimeout(function(){var d=b.elementHeight(c),j=b.elementWidth(c);d!==i||j!==h?(e.grid.gridHeight=d,e.grid.gridWidth=j,a.$apply(function(){e.grid.refresh().then(function(){f(),g()})})):g()},250)}var h,i;f();var j;g(),a.$on("$destroy",function(){clearTimeout(j)})}}}])}(),function(){"use strict";var a=angular.module("ui.grid.cellNav",["ui.grid"]);a.constant("uiGridCellNavConstants",{FEATURE_NAME:"gridCellNav",CELL_NAV_EVENT:"cellNav",direction:{LEFT:0,RIGHT:1,UP:2,DOWN:3,PG_UP:4,PG_DOWN:5},EVENT_TYPE:{KEYDOWN:0,CLICK:1,CLEAR:2}}),a.factory("uiGridCellNavFactory",["gridUtil","uiGridConstants","uiGridCellNavConstants","GridRowColumn","$q",function(a,b,c,d,e){var f=function(a,b,c,d){this.rows=a.visibleRowCache,this.columns=b.visibleColumnCache,this.leftColumns=c?c.visibleColumnCache:[],this.rightColumns=d?d.visibleColumnCache:[],this.bodyContainer=a};return f.prototype.getFocusableCols=function(){var a=this.leftColumns.concat(this.columns,this.rightColumns);return a.filter(function(a){return a.colDef.allowCellFocus})},f.prototype.getFocusableRows=function(){return this.rows.filter(function(a){return a.allowCellFocus!==!1})},f.prototype.getNextRowCol=function(a,b,d){switch(a){case c.direction.LEFT:return this.getRowColLeft(b,d);case c.direction.RIGHT:return this.getRowColRight(b,d);case c.direction.UP:return this.getRowColUp(b,d);case c.direction.DOWN:return this.getRowColDown(b,d);case c.direction.PG_UP:return this.getRowColPageUp(b,d);case c.direction.PG_DOWN:return this.getRowColPageDown(b,d)}},f.prototype.initializeSelection=function(){var a=this.getFocusableCols(),b=this.getFocusableRows();if(0===a.length||0===b.length)return null;return new d(b[0],a[0])},f.prototype.getRowColLeft=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=1);var h=0===f?c.length-1:f-1;return h>f?0===g?new d(a,c[h]):new d(e[g-1],c[h]):new d(a,c[h])},f.prototype.getRowColRight=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=0);var h=f===c.length-1?0:f+1;return f>h?g===e.length-1?new d(a,c[h]):new d(e[g+1],c[h]):new d(a,c[h])},f.prototype.getRowColDown=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);return-1===f&&(f=0),g===e.length-1?new d(a,c[f]):new d(e[g+1],c[f])},f.prototype.getRowColPageDown=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=0);var h=this.bodyContainer.minRowsToRender();return g>=e.length-h?new d(e[e.length-1],c[f]):new d(e[g+h],c[f])},f.prototype.getRowColUp=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);return-1===f&&(f=0),0===g?new d(a,c[f]):new d(e[g-1],c[f])},f.prototype.getRowColPageUp=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=0);var h=this.bodyContainer.minRowsToRender();return 0>g-h?new d(e[0],c[f]):new d(e[g-h],c[f])},f}]),a.service("uiGridCellNavService",["gridUtil","uiGridConstants","uiGridCellNavConstants","$q","uiGridCellNavFactory","GridRowColumn","ScrollEvent",function(a,b,c,d,e,f,g){var h={initializeGrid:function(a){a.registerColumnBuilder(h.cellNavColumnBuilder),a.cellNav={},a.cellNav.lastRowCol=null,a.cellNav.focusedCells=[],h.defaultGridOptions(a.options);var b={events:{cellNav:{navigate:function(a,b){},viewPortKeyDown:function(a,b){},viewPortKeyPress:function(a,b){}}},methods:{cellNav:{scrollToFocus:function(b,c){return h.scrollToFocus(a,b,c)},getFocusedCell:function(){return a.cellNav.lastRowCol},getCurrentSelection:function(){return a.cellNav.focusedCells},rowColSelectIndex:function(b){for(var c=-1,d=0;d<a.cellNav.focusedCells.length;d++)if(a.cellNav.focusedCells[d].col.uid===b.col.uid&&a.cellNav.focusedCells[d].row.uid===b.row.uid){c=d;break}return c}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods)},defaultGridOptions:function(a){a.modifierKeysToMultiSelectCells=a.modifierKeysToMultiSelectCells===!0},decorateRenderContainers:function(a){var b=a.hasRightContainer()?a.renderContainers.right:null,c=a.hasLeftContainer()?a.renderContainers.left:null;null!==c&&(a.renderContainers.left.cellNav=new e(a.renderContainers.body,c,b,a.renderContainers.body)),null!==b&&(a.renderContainers.right.cellNav=new e(a.renderContainers.body,b,a.renderContainers.body,c)),
\ No newline at end of file
diff --git a/public/app/ff092e3b.vendor.css b/public/app/ff092e3b.vendor.css
deleted file mode 100644
index 89f2779..0000000
--- a/public/app/ff092e3b.vendor.css
+++ /dev/null
@@ -1,30 +0,0 @@
-@charset "UTF-8";/*!
- * Bootstrap v3.3.5 (http://getbootstrap.com)
- * Copyright 2011-2015 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
-angular-xeditable - 0.1.9
-Edit-in-place for angular.js
-Build date: 2015-03-26 
-Animate.css - http://daneden.me/animate
-Licensed under the MIT license - http://opensource.org/licenses/MIT
-
-Copyright (c) 2015 Daniel Eden
- * Bootstrap-select v1.7.5 (http://silviomoreto.github.io/bootstrap-select)
- *
- * Copyright 2013-2015 bootstrap-select
- * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
- *  Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome
- *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- * ui-select
- * http://github.com/angular-ui/ui-select
- * Version: 0.13.2 - 2015-10-09T15:34:24.045Z
- * License: MIT
- * ui-grid - v3.0.7 - 2015-10-06
- * Copyright (c) 2015 ; License: MIT 
\ No newline at end of file
diff --git a/public/assets/css/global/components.css b/public/assets/css/global/components.css
index 629354f..59e05db 100644
--- a/public/assets/css/global/components.css
+++ b/public/assets/css/global/components.css
@@ -1659,19 +1659,24 @@ Chats
   -moz-border-radius: 5px !important;
   display: block;
   padding: 5px;
+  padding-left: 20px;
+  padding-right: 20px;
   position: relative;
 }
 .chats li.in .message {
   text-align: left;
   /*border-left: 2px solid #1BBC9B;*/
-  border-left: 2px solid #e9e9e9;
+  /*border-left: 2px solid #e9e9e9;*/
+  border: 2px solid #E9E9E9;
   margin-left: 65px;
-  background: #e9e9e9;
+  box-shadow: 0 5px 10px #777;
+  /*box-shadow:0 0 8px #B2B2B2;*/
+  /*background: #e9e9e9;*/
 }
 .chats li.in .message .arrow {
   display: block;
   position: absolute;
-  top: 5px;
+  top: 15px;
   left: -8px;
   width: 0;
   height: 0;
@@ -1682,21 +1687,24 @@ Chats
 }
 .chats li.out .message {
   /*border-right: 2px solid #F3565D;*/
-  border-right: 2px solid #C7E9E6;
+  /*border-right: 2px solid #C7E9E6;*/
+  border: 2px solid #DFEECF;
   margin-right: 65px;
+  margin-left: 5px;
+  box-shadow: 0 5px 10px #777;
   /*background: #fafafa;*/
-  background: #C7E9E6;
-  text-align: right;
+  /*background: #C7E9E6;*/
+  /*text-align: right;*/
 }
 .chats li.out .message .arrow {
   display: block;
   position: absolute;
-  top: 5px;
+  top: 15px;
   right: -8px;
   border-top: 8px solid transparent;
   border-bottom: 8px solid transparent;
   /*border-left: 8px solid #F3565D;*/
-  border-left: 8px solid #C7E9E6;
+  border-left: 8px solid #DFEECF;
 }
 .chats li.out .name,
 .chats li.out .datetime {
diff --git a/public/assets/css/global/custom.css b/public/assets/css/global/custom.css
index 3164f4f..2e82928 100644
--- a/public/assets/css/global/custom.css
+++ b/public/assets/css/global/custom.css
@@ -72,6 +72,10 @@ Change Quick Sidebar Width
   float: right;
 }
 
+.float-left{
+  float: left;
+}
+
 .checker {
   width: 19px;
   height: 19px;
@@ -272,7 +276,7 @@ width: auto !important;
 }
 
 .pointer-cursor{
-  cursor: pointer;
+  cursor: pointer !important;
 }
 
 .select-group-father{
@@ -317,3 +321,24 @@ width: auto !important;
   padding-left:20px;
   padding-right:20px;
 }
+
+.col-fixed, .tree-row {
+  float: left;
+}
+
+.col-fixed {
+  width: 277px;
+  margin-right: 15px;
+}
+
+.tree-row {
+  width:calc(100% - 277px + 15px);
+}
+
+.tree-search{
+  float: left;
+  display: inline-block;
+  line-height: 18px;
+  font-weight: 300;
+  padding: 10px 0;
+}
diff --git a/public/assets/images/media/customfield.png b/public/assets/images/media/customfield.png
new file mode 100644
index 0000000000000000000000000000000000000000..e73672dd622b19f3687b62d71d003785177ce4ce
GIT binary patch
literal 15817
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

literal 0
HcmV?d00001

diff --git a/public/assets/images/media/desk2.png b/public/assets/images/media/desk2.png
new file mode 100644
index 0000000000000000000000000000000000000000..c39ec1f846d18b07e5a68317a8a3a76e30a0885f
GIT binary patch
literal 56060
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
P1n3CR5uhXR-w^meV}nEK

literal 0
HcmV?d00001

diff --git a/public/assets/images/media/freshdesk.png b/public/assets/images/media/freshdesk.png
new file mode 100644
index 0000000000000000000000000000000000000000..bef47be20e2b07ce4b85305d8da107ccad1b6fa7
GIT binary patch
literal 88477
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
BFh>9Y

literal 0
HcmV?d00001

diff --git a/public/assets/images/media/metric.png b/public/assets/images/media/metric.png
new file mode 100644
index 0000000000000000000000000000000000000000..1ba4dcf6ab54a475fee57c6de922423ccd33756f
GIT binary patch
literal 16026
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

literal 0
HcmV?d00001

diff --git a/public/assets/images/media/salesforce2.png b/public/assets/images/media/salesforce2.png
new file mode 100644
index 0000000000000000000000000000000000000000..e206a7c97f457c4c015060b826d8b349ec7427ce
GIT binary patch
literal 106631
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

literal 0
HcmV?d00001

diff --git a/public/assets/images/media/sugarcrm.png b/public/assets/images/media/sugarcrm.png
new file mode 100644
index 0000000000000000000000000000000000000000..8ea57c4984a38f8e42dbf5833c264044ce9306ef
GIT binary patch
literal 6814
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
BuQLDu

literal 0
HcmV?d00001

diff --git a/public/assets/images/media/sugarcrm2.png b/public/assets/images/media/sugarcrm2.png
new file mode 100644
index 0000000000000000000000000000000000000000..22f7978ef90afd6b659f459b573097c4273a3f9f
GIT binary patch
literal 104374
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

literal 0
HcmV?d00001

diff --git a/public/assets/images/media/zendesk2.png b/public/assets/images/media/zendesk2.png
new file mode 100644
index 0000000000000000000000000000000000000000..7f9f6b695e35cfa7b2d2d69d55cb050dc5e68763
GIT binary patch
literal 64351
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

literal 0
HcmV?d00001

diff --git a/public/assets/languages/locale-en_EN.json b/public/assets/languages/locale-en_EN.json
index 3889084..6d0c7e4 100644
--- a/public/assets/languages/locale-en_EN.json
+++ b/public/assets/languages/locale-en_EN.json
@@ -4,13 +4,37 @@
   "APPLICATION_USERS": "Users",
   "APPLICATION_DEFAULT": "Default",
   "APPLICATION_CONTACT_MANAGER": "Contacts Manager",
+  "APPLICATION_ENQUIRY_FORWARDING": "Enquiry Forwading",
+  "APPLICATION_ENQUIRY_FORWARDING_ADDRESS": "Enquiry Forwading Address",
   "APPLICATION_CHECKOUT": "Checkout",
+  "APPLICATION_RENAME": "Rename",
+  "APPLICATION_METRIC": "Metric",
+  "APPLICATION_NEW_METRIC": "New Metric",
+  "MESSAGE_NO_METRICS_AVAILABLE": "No metrics available",
+  "APPLICATION_FOLDERS": "Folders",
+  "MESSAGE_NO_REPORTS_AVAILABLE": "No available reports",
   "APPLICATION_CALL_STATUS": "Call Status",
+  "APPLICATION_NEW_SMTP": "New SMTP Account",
+  "APPLICATION_DEFAULT_REPORTS": "Default Reports",
+  "APPLICATION_CUSTOM_REPORTS": "Custom Reports",
   "APPLICATION_LASTEVENT_RINGING": "Ringing",
+  "APPLICATION_OFFLINE": "Offline",
   "APPLICATION_LASTEVENT_UP": "Up",
+  "APPLICATION_JOURNAL": "Journal",
+  "APPLICATION_SELECTED_AGENTS": "Selected Agents",
+  "APPLICATION_AGENTS_SELECTION": "Agents Selection",
+  "APPLICATION_LOG": "Log",
+  "APPLICATION_SOURCE": "Source",
+  "APPLICATION_DESTINATION": "Destination",
+  "APPLICATION_IMPORT_SUCCEEDED": "Succeeded",
+  "APPLICATION_IMPORT_FAILED": "Failed",
+  "APPLICATION_IMPORT_FROM_CSV": "Import from CSV",
   "APPLICATION_CHOOSE_CONTACT": "Choose contact",
+  "MESSAGE_REMEMBER_SMTP_SERVICE_ACCOUNT": "Remember to setup the Motion SMTP Service Account",
   "APPLICATION_LASTEVENT_COMPLETE": "Complete",
   "APPLICATION_LASTEVENT_REJECTED": "Rejected",
+  "APPLICATION_CHOICES": "Choices",
+  "APPLICATION_ADD_CHOICE": "Add choice",
   "APPLICATION_LASTEVENT_ABANDONED": "Abandoned",
   "APPLICATION_OR": "Or",
   "APPLICATION_EXISTING_CONTACT": "Existing contact",
@@ -39,6 +63,7 @@
   "MESSAGE_NO_CONTACTS_AVAILABLE": "No contacts available",
   "APPLICATION_USER": "User",
   "MESSAGE_NO_AVAILABLE_UPDATES": "No available updates",
+  "MESSAGE_NO_AVAILABLE_SMTP_ACCOUNTS": "No available SMTP Accounts",
   "APPLICATION_PHONES": "Phones",
   "APPLICATION_EMAILS": "Emails",
   "APPLICATION_ADD_PHONE": "Add Phone",
@@ -464,6 +489,7 @@
   "APPLICATION_EDIT": "Edit",
   "APPLICATION_DELETE": "Delete",
   "APPLICATION_CANCEL": "Cancel",
+  "APPLICATION_STOP": "Stop",
   "APPLICATION_CANCEL_ALL": "Cancel all",
   "APPLICATION_UPLOAD": "Upload",
   "APPLICATION_UPLOAD_ALL": "Upload all",
@@ -597,6 +623,7 @@
   "APPLICATION_OPENED": "Opened",
   "APPLICATION_CODEC": "Codec",
   "APPLICATION_CLOSED": "Closed",
+  "APPLICATION_CLOSE": "Close",
   "APPLICATION_PENDING": "Pending",
   "APPLICATION_SERVED": "Served",
   "APPLICATION_UNSERVED": "Unserved",
@@ -693,6 +720,8 @@
   "MESSAGE_ERROR": "Error",
   "MESSAGE_SOMETHING_WENT_WRONG": "Something went wrong",
   "MESSAGE_ARE_YOU_SURE_YOU_WANT_TO_CLOSE_THE_CHAT": "Are you sure you want to close the chat?",
+  "APPLICATION_MESSAGE_SEND_RETRY": "Attempt to resend the Email",
+  "MESSAGE_MESSAGE_SEND_RETRY": "Are you sure you want to retry to send the message?",
   "MESSAGE_MAIL_ACCOUNT_UPDATE_SUCCESS": "Your mail account has been properly updated",
   "MESSAGE_CHAT_PROPERLY_ASSIGNED": "Chat session properly assigned",
   "MESSAGE_CHAT_ALREADY_ASSIGNED": "Chat session already assigned",
@@ -787,6 +816,7 @@
   "APPLICATION_CONFIGURATIONS": "Configurations",
   "APPLICATION_CONFIGURATION": "Configuration",
   "MESSAGE_EXIST_CUSTOM_FIELD": "Account/Field combination already exists",
+  "MESSAGE_NO_CUSTOM_FIELDS_AVAILABLE": "No available Custom Fields",
   "APPLICATION_NEW_CONFIGURATION": "New Configuration",
   "MESSAGE_VARIABLE_CONFIGURATION_ASSOCIATED": "The Variable is associated with one or more Zendesk configuration, delete them first",
   "APPLICATION_DESK_COM": "Desk.com",
@@ -797,5 +827,10 @@
   "APPLICATION_SALESFORCE": "SalesForce",
   "APPLICATION_CLIENT_ID": "Client ID",
   "APPLICATION_CLIENT_SECRET": "Client Secret",
-  "APPLICATION_SECURITY_TOKEN": "Security Token"
+  "APPLICATION_SECURITY_TOKEN": "Security Token",
+  "APPLICATION_FRESHDESK": "Freshdesk",
+  "APPLICATION_API_KEY": "Api Key",
+  "APPLICATION_SUGARCRM": "SugarCRM",
+  "MESSAGE_RESTART_REQUIRED": "Server restart required",
+  "MESSAGE_WARNING": "Warning"
 }
diff --git a/public/assets/languages/locale-it.json b/public/assets/languages/locale-it.json
index 69e70b7..44340bc 100644
--- a/public/assets/languages/locale-it.json
+++ b/public/assets/languages/locale-it.json
@@ -4,16 +4,43 @@
   "APPLICATION_USERS": "Utenti",
   "APPLICATION_DEFAULT": "Default",
   "APPLICATION_USER": "Utente",
+  "APPLICATION_ENQUIRY_FORWARDING": "Inoltro Messaggi Offline",
+  "APPLICATION_ENQUIRY_FORWARDING_ADDRESS": "Indirizzo d'inoltro dei Messaggi Offline",
   "APPLICATION_CONTACT_MANAGER": "Manager contatti",
   "APPLICATION_CHECKOUT": "Checkout",
+  "APPLICATION_RENAME": "Rinomina",
+  "APPLICATION_METRIC": "Metrica",
+  "APPLICATION_NEW_METRIC": "Nuova Metrica",
+  "MESSAGE_NO_METRICS_AVAILABLE": "Nessuna metrica disponibile",
+  "APPLICATION_FOLDERS": "Cartelle",
+  "MESSAGE_NO_REPORTS_AVAILABLE": "Nessun report disponibile",
   "APPLICATION_CALL_STATUS": "Stato Chiamata",
+  "APPLICATION_DEFAULT_REPORTS": "Default Reports",
+  "APPLICATION_CUSTOM_REPORTS": "Custom Reports",
+  "APPLICATION_OFFLINE": "Offline",
+  "APPLICATION_NEW_SMTP": "Aggiungi SMTP Account",
   "APPLICATION_LASTEVENT_RINGING": "Ringing",
+  "APPLICATION_SELECTED_AGENTS": "Selezione Agenti",
+  "APPLICATION_AGENTS_SELECTION": "Agenti selezionati",
   "APPLICATION_LASTEVENT_UP": "Up",
+  "APPLICATION_JOURNAL": "Giornaliero",
+  "APPLICATION_LOG": "Log",
+  "APPLICATION_SOURCE": "Sorgente",
+  "APPLICATION_DESTINATION": "Destinazione",
+  "APPLICATION_IMPORT_SUCCEEDED": "Completati",
+  "APPLICATION_IMPORT_FAILED": "Falliti",
+  "APPLICATION_IMPORT_FROM_CSV": "Importa da CSV",
+  "MESSAGE_REMEMBER_SMTP_SERVICE_ACCOUNT": "Ricorda di configurare l'account SMTP per i servizio Motion",
+  "MESSAGE_NO_AVAILABLE_SMTP_ACCOUNTS": "Nessun SMTP Account disponibile",
   "APPLICATION_LASTEVENT_COMPLETE": "Complete",
   "APPLICATION_CHOOSE_CONTACT": "Scegli contatto",
+  "APPLICATION_CHOICES": "Scelte",
+  "APPLICATION_ADD_CHOICE": "Aggiungi scelta",
   "APPLICATION_LASTEVENT_REJECTED": "Rejected",
   "APPLICATION_LASTEVENT_ABANDONED": "Abandoned",
   "APPLICATION_OR": "Oppure",
+  "MESSAGE_MESSAGE_SEND_RETRY": "Sei sicuro di voler reinviare il messaggio?",
+  "APPLICATION_MESSAGE_SEND_RETRY": "Tentativo di reinvio Email",
   "APPLICATION_EXISTING_CONTACT": "Contatto esistente",
   "APPLICATION_JOIN_WITH": "Unisci con",
   "APPLICATION_CONTACTS": "Contatti",
@@ -490,6 +517,7 @@
   "APPLICATION_EDIT": "Modifica",
   "APPLICATION_DELETE": "Elimina",
   "APPLICATION_CANCEL": "Cancella",
+  "APPLICATION_STOP": "Stop",
   "APPLICATION_CANCEL_ALL": "Cancella tutti",
   "APPLICATION_UPLOAD": "Upload",
   "APPLICATION_UPLOAD_ALL": "Upload tutti",
@@ -622,6 +650,7 @@
   "APPLICATION_OPENED": "Aperte",
   "APPLICATION_CODEC": "Codec",
   "APPLICATION_CLOSED": "Chiuse",
+  "APPLICATION_CLOSE": "Chiudi",
   "APPLICATION_PENDING": "Pendenti",
   "APPLICATION_SERVED": "Servite",
   "APPLICATION_UNSERVED": "Non Servite",
@@ -790,6 +819,7 @@
   "APPLICATION_CONFIGURATIONS": "Configurazioni",
   "APPLICATION_CONFIGURATION": "Configurazione",
   "MESSAGE_EXIST_CUSTOM_FIELD": "Combinazione Account/Field è già presente",
+  "MESSAGE_NO_CUSTOM_FIELDS_AVAILABLE": "Nessun Custom Field disponibile",
   "APPLICATION_NEW_CONFIGURATION": "Nuova Configurazione",
   "MESSAGE_VARIABLE_CONFIGURATION_ASSOCIATED": "La Variabile è associata con una o più configurazione Zendesk, eliminale e riprova",
   "APPLICATION_DESK_COM": "Desk.com",
@@ -800,5 +830,10 @@
   "APPLICATION_SALESFORCE": "SalesForce",
   "APPLICATION_CLIENT_ID": "Client ID",
   "APPLICATION_CLIENT_SECRET": "Client Secret",
-  "APPLICATION_SECURITY_TOKEN": "Security Token"
+  "APPLICATION_SECURITY_TOKEN": "Security Token",
+  "APPLICATION_FRESHDESK": "Freshdesk",
+  "APPLICATION_API_KEY": "Api Key",
+  "APPLICATION_SUGARCRM": "SugarCRM",
+  "MESSAGE_RESTART_REQUIRED": "Necessario il riavvio del server",
+  "MESSAGE_WARNING": "Attenzione"
 }
diff --git a/public/assets/scripts/global/layout.js b/public/assets/scripts/global/layout.js
index 0e45e7c..5b6762e 100644
--- a/public/assets/scripts/global/layout.js
+++ b/public/assets/scripts/global/layout.js
@@ -1,7 +1,7 @@
 /**
 Core script to handle the entire theme and core functions
 **/
-var Layout = function() {
+var Layout = function () {
 
   var layoutImgPath = 'img/';
 
@@ -13,7 +13,7 @@ var Layout = function() {
   // this function handles responsive layout on screen size resize or mobile device rotate.
 
   // Set proper height for sidebar and content. The content and sidebar height must be synced always.
-  var handleSidebarAndContentHeight = function() {
+  var handleSidebarAndContentHeight = function () {
     var content = $('.page-content');
     var sidebar = $('.page-sidebar');
     var body = $('body');
@@ -49,7 +49,7 @@ var Layout = function() {
   };
 
   // Handle sidebar menu links
-  var handleSidebarMenuActiveLink = function(mode, el) {
+  var handleSidebarMenuActiveLink = function (mode, el) {
     var url = location.hash.toLowerCase();
 
     var menu = $('.page-sidebar-menu');
@@ -57,7 +57,7 @@ var Layout = function() {
     if (mode === 'click' || mode === 'set') {
       el = $(el);
     } else if (mode === 'match') {
-      menu.find("li > a").each(function() {
+      menu.find("li > a").each(function () {
         var path = $(this).attr("href").toLowerCase();
         // url match condition
         if (path.length > 1 && url.substr(1, path.length - 1) == path.substr(1)) {
@@ -83,7 +83,7 @@ var Layout = function() {
     menu.find('li > a > .selected').remove();
 
     if (menu.hasClass('page-sidebar-menu-hover-submenu') === false) {
-      menu.find('li.open').each(function() {
+      menu.find('li.open').each(function () {
         if ($(this).children('.sub-menu').size() === 0) {
           $(this).removeClass('open');
           $(this).find('> a > .arrow.open').removeClass('open');
@@ -93,7 +93,7 @@ var Layout = function() {
       menu.find('li.open').removeClass('open');
     }
 
-    el.parents('li').each(function() {
+    el.parents('li').each(function () {
       $(this).addClass('active');
       $(this).find('> a > span.arrow').addClass('open');
 
@@ -114,9 +114,9 @@ var Layout = function() {
   };
 
   // Handle sidebar menu
-  var handleSidebarMenu = function() {
+  var handleSidebarMenu = function () {
     // handle sidebar link click
-    jQuery('.page-sidebar').on('click', 'li > a', function(e) {
+    jQuery('.page-sidebar').on('click', 'li > a', function (e) {
       var hasSubMenu = $(this).next().hasClass('sub-menu');
 
       if (Metronic.getViewPort().width >= resBreakpointMd && $(this).parents('.page-sidebar-menu-hover-submenu').size() === 1) { // exit of hover sidebar menu
@@ -154,7 +154,7 @@ var Layout = function() {
       if (sub.is(":visible")) {
         jQuery('.arrow', jQuery(this)).removeClass("open");
         jQuery(this).parent().removeClass("open");
-        sub.slideUp(slideSpeed, function() {
+        sub.slideUp(slideSpeed, function () {
           if (autoScroll === true && $('body').hasClass('page-sidebar-closed') === false) {
             if ($('body').hasClass('page-sidebar-fixed')) {
               menu.slimScroll({
@@ -169,7 +169,7 @@ var Layout = function() {
       } else if (hasSubMenu) {
         jQuery('.arrow', jQuery(this)).addClass("open");
         jQuery(this).parent().addClass("open");
-        sub.slideDown(slideSpeed, function() {
+        sub.slideDown(slideSpeed, function () {
           if (autoScroll === true && $('body').hasClass('page-sidebar-closed') === false) {
             if ($('body').hasClass('page-sidebar-fixed')) {
               menu.slimScroll({
@@ -187,7 +187,7 @@ var Layout = function() {
     });
 
     // handle ajax links within sidebar menu
-    jQuery('.page-sidebar').on('click', ' li > a.ajaxify', function(e) {
+    jQuery('.page-sidebar').on('click', ' li > a.ajaxify', function (e) {
       e.preventDefault();
       Metronic.scrollTop();
 
@@ -199,7 +199,7 @@ var Layout = function() {
       menuContainer.children('li.active').removeClass('active');
       menuContainer.children('arrow.open').removeClass('open');
 
-      $(this).parents('li').each(function() {
+      $(this).parents('li').each(function () {
         $(this).addClass('active');
         $(this).children('a > span.arrow').addClass('open');
       });
@@ -218,7 +218,7 @@ var Layout = function() {
         cache: false,
         url: url,
         dataType: "html",
-        success: function(res) {
+        success: function (res) {
           if (the.parents('li.open').size() === 0) {
             $('.page-sidebar-menu > li.open > a').click();
           }
@@ -228,7 +228,7 @@ var Layout = function() {
           Layout.fixContentHeight(); // fix content height
           Metronic.initAjax(); // initialize core stuff
         },
-        error: function(xhr, ajaxOptions, thrownError) {
+        error: function (xhr, ajaxOptions, thrownError) {
           Metronic.stopPageLoading();
           pageContentBody.html('<h4>Could not load the requested content.</h4>');
         }
@@ -236,7 +236,7 @@ var Layout = function() {
     });
 
     // handle ajax link within main content
-    jQuery('.page-content').on('click', '.ajaxify', function(e) {
+    jQuery('.page-content').on('click', '.ajaxify', function (e) {
       e.preventDefault();
       Metronic.scrollTop();
 
@@ -255,13 +255,13 @@ var Layout = function() {
         cache: false,
         url: url,
         dataType: "html",
-        success: function(res) {
+        success: function (res) {
           Metronic.stopPageLoading();
           pageContentBody.html(res);
           Layout.fixContentHeight(); // fix content height
           Metronic.initAjax(); // initialize core stuff
         },
-        error: function(xhr, ajaxOptions, thrownError) {
+        error: function (xhr, ajaxOptions, thrownError) {
           pageContentBody.html('<h4>Could not load the requested content.</h4>');
           Metronic.stopPageLoading();
         }
@@ -272,13 +272,13 @@ var Layout = function() {
     handleFixedSidebarHoverEffect();
 
     // handle the search bar close
-    $('.page-sidebar').on('click', '.sidebar-search .remove', function(e) {
+    $('.page-sidebar').on('click', '.sidebar-search .remove', function (e) {
       e.preventDefault();
       $('.sidebar-search').removeClass("open");
     });
 
     // handle the search query submit on enter press
-    $('.page-sidebar .sidebar-search').on('keypress', 'input.form-control', function(e) {
+    $('.page-sidebar .sidebar-search').on('keypress', 'input.form-control', function (e) {
       if (e.which == 13) {
         $('.sidebar-search').submit();
         return false; //<---- Add this line
@@ -286,29 +286,29 @@ var Layout = function() {
     });
 
     // handle the search submit(for sidebar search and responsive mode of the header search)
-    $('.sidebar-search .submit').on('click', function(e) {
-      e.preventDefault();
-      if ($('body').hasClass("page-sidebar-closed")) {
-        if ($('.sidebar-search').hasClass('open') === false) {
-          if ($('.page-sidebar-fixed').size() === 1) {
-            $('.page-sidebar .sidebar-toggler').click(); //trigger sidebar toggle button
-          }
-          $('.sidebar-search').addClass("open");
-        } else {
-          $('.sidebar-search').submit();
-        }
-      } else {
-        $('.sidebar-search').submit();
-      }
-    });
+    // $('.sidebar-search .submit').on('click', function(e) {
+    //   e.preventDefault();
+    //   if ($('body').hasClass("page-sidebar-closed")) {
+    //     if ($('.sidebar-search').hasClass('open') === false) {
+    //       if ($('.page-sidebar-fixed').size() === 1) {
+    //         $('.page-sidebar .sidebar-toggler').click(); //trigger sidebar toggle button
+    //       }
+    //       $('.sidebar-search').addClass("open");
+    //     } else {
+    //       $('.sidebar-search').submit();
+    //     }
+    //   } else {
+    //     $('.sidebar-search').submit();
+    //   }
+    // });
 
     // handle close on body click
     if ($('.sidebar-search').size() !== 0) {
-      $('.sidebar-search .input-group').on('click', function(e) {
+      $('.sidebar-search .input-group').on('click', function (e) {
         e.stopPropagation();
       });
 
-      $('body').on('click', function() {
+      $('body').on('click', function () {
         if ($('.sidebar-search').hasClass('open')) {
           $('.sidebar-search').removeClass("open");
         }
@@ -317,7 +317,7 @@ var Layout = function() {
   };
 
   // Helper function to calculate sidebar height for fixed sidebar layout.
-  var _calculateFixedSidebarViewportHeight = function() {
+  var _calculateFixedSidebarViewportHeight = function () {
     var sidebarHeight = Metronic.getViewPort().height - $('.page-header').outerHeight();
     if ($('body').hasClass("page-footer-fixed")) {
       sidebarHeight = sidebarHeight - $('.page-footer').outerHeight();
@@ -327,7 +327,7 @@ var Layout = function() {
   };
 
   // Handles fixed sidebar
-  var handleFixedSidebar = function() {
+  var handleFixedSidebar = function () {
     var menu = $('.page-sidebar-menu');
 
     Metronic.destroySlimScroll(menu);
@@ -345,14 +345,14 @@ var Layout = function() {
   };
 
   // Handles sidebar toggler to close/hide the sidebar.
-  var handleFixedSidebarHoverEffect = function() {
+  var handleFixedSidebarHoverEffect = function () {
     var body = $('body');
     if (body.hasClass('page-sidebar-fixed')) {
-      $('.page-sidebar').on('mouseenter', function() {
+      $('.page-sidebar').on('mouseenter', function () {
         if (body.hasClass('page-sidebar-closed')) {
           $(this).find('.page-sidebar-menu').removeClass('page-sidebar-menu-closed');
         }
-      }).on('mouseleave', function() {
+      }).on('mouseleave', function () {
         if (body.hasClass('page-sidebar-closed')) {
           $(this).find('.page-sidebar-menu').addClass('page-sidebar-menu-closed');
         }
@@ -361,7 +361,7 @@ var Layout = function() {
   };
 
   // Hanles sidebar toggler
-  var handleSidebarToggler = function() {
+  var handleSidebarToggler = function () {
     var body = $('body');
     if ($.cookie && $.cookie('sidebar_closed') === '1' && Metronic.getViewPort().width >= resBreakpointMd) {
       $('body').addClass('page-sidebar-closed');
@@ -373,7 +373,7 @@ var Layout = function() {
     }
 
     // handle sidebar show/hide
-    $('body').on('click', '.sidebar-toggler', function(e) {
+    $('body').on('click', '.sidebar-toggler', function (e) {
       var sidebar = $('.page-sidebar');
       var sidebarMenu = $('.page-sidebar-menu');
       $(".sidebar-search", sidebar).removeClass("open");
@@ -400,9 +400,9 @@ var Layout = function() {
   };
 
   // Handles the horizontal menu
-  var handleHorizontalMenu = function() {
+  var handleHorizontalMenu = function () {
     //handle tab click
-    $('.page-header').on('click', '.hor-menu a[data-toggle="tab"]', function(e) {
+    $('.page-header').on('click', '.hor-menu a[data-toggle="tab"]', function (e) {
       e.preventDefault();
       var nav = $(".hor-menu .nav");
       var active_link = nav.find('li.current');
@@ -414,18 +414,18 @@ var Layout = function() {
     });
 
     // handle search box expand/collapse
-    $('.page-header').on('click', '.search-form', function(e) {
+    $('.page-header').on('click', '.search-form', function (e) {
       $(this).addClass("open");
       $(this).find('.form-control').focus();
 
-      $('.page-header .search-form .form-control').on('blur', function(e) {
+      $('.page-header .search-form .form-control').on('blur', function (e) {
         $(this).closest('.search-form').removeClass("open");
         $(this).unbind("blur");
       });
     });
 
     // handle hor menu search form on enter press
-    $('.page-header').on('keypress', '.hor-menu .search-form .form-control', function(e) {
+    $('.page-header').on('keypress', '.hor-menu .search-form .form-control', function (e) {
       if (e.which == 13) {
         $(this).closest('.search-form').submit();
         return false;
@@ -433,38 +433,38 @@ var Layout = function() {
     });
 
     // handle header search button click
-    $('.page-header').on('mousedown', '.search-form.open .submit', function(e) {
+    $('.page-header').on('mousedown', '.search-form.open .submit', function (e) {
       e.preventDefault();
       e.stopPropagation();
       $(this).closest('.search-form').submit();
     });
 
     // handle hover dropdown menu for desktop devices only
-    $('[data-hover="megamenu-dropdown"]').not('.hover-initialized').each(function() {
+    $('[data-hover="megamenu-dropdown"]').not('.hover-initialized').each(function () {
       $(this).dropdownHover();
       $(this).addClass('hover-initialized');
     });
 
-    $(document).on('click', '.mega-menu-dropdown .dropdown-menu', function(e) {
+    $(document).on('click', '.mega-menu-dropdown .dropdown-menu', function (e) {
       e.stopPropagation();
     });
   };
 
   // Handles Bootstrap Tabs.
-  var handleTabs = function() {
+  var handleTabs = function () {
     // fix content height on tab click
-    $('body').on('shown.bs.tab', 'a[data-toggle="tab"]', function() {
+    $('body').on('shown.bs.tab', 'a[data-toggle="tab"]', function () {
       handleSidebarAndContentHeight();
     });
   };
 
   // Handles the go to top button at the footer
-  var handleGoTop = function() {
+  var handleGoTop = function () {
     var offset = 300;
     var duration = 500;
 
     if (navigator.userAgent.match(/iPhone|iPad|iPod/i)) { // ios supported
-      $(window).bind("touchend touchcancel touchleave", function(e) {
+      $(window).bind("touchend touchcancel touchleave", function (e) {
         if ($(this).scrollTop() > offset) {
           $('.scroll-to-top').fadeIn(duration);
         } else {
@@ -472,7 +472,7 @@ var Layout = function() {
         }
       });
     } else { // general
-      $(window).scroll(function() {
+      $(window).scroll(function () {
         if ($(this).scrollTop() > offset) {
           $('.scroll-to-top').fadeIn(duration);
         } else {
@@ -481,7 +481,7 @@ var Layout = function() {
       });
     }
 
-    $('.scroll-to-top').click(function(e) {
+    $('.scroll-to-top').click(function (e) {
       e.preventDefault();
       $('html, body').animate({
         scrollTop: 0
@@ -491,7 +491,7 @@ var Layout = function() {
   };
 
   // Hanlde 100% height elements(block, portlet, etc)
-  var handle100HeightContent = function() {
+  var handle100HeightContent = function () {
 
     var target = $('.full-height-content');
     var height;
@@ -543,15 +543,15 @@ var Layout = function() {
     // Main init methods to initialize the layout
     //IMPORTANT!!!: Do not modify the core handlers call order.
 
-    initHeader: function() {
+    initHeader: function () {
       handleHorizontalMenu(); // handles horizontal menu
     },
 
-    setSidebarMenuActiveLink: function(mode, el) {
+    setSidebarMenuActiveLink: function (mode, el) {
       handleSidebarMenuActiveLink(mode, el);
     },
 
-    initSidebar: function() {
+    initSidebar: function () {
       //layout handlers
       handleFixedSidebar(); // handles fixed sidebar menu
       handleSidebarMenu(); // handles main menu
@@ -564,7 +564,7 @@ var Layout = function() {
       Metronic.addResizeHandler(handleFixedSidebar); // reinitialize fixed sidebar on window resize
     },
 
-    initContent: function() {
+    initContent: function () {
       handle100HeightContent(); // handles 100% height elements(block, portlet, etc)
       handleTabs(); // handle bootstrah tabs
 
@@ -572,11 +572,11 @@ var Layout = function() {
       Metronic.addResizeHandler(handle100HeightContent); // reinitialize content height on window resize
     },
 
-    initFooter: function() {
+    initFooter: function () {
       handleGoTop(); //handles scroll to top functionality in the footer
     },
 
-    init: function() {
+    init: function () {
       this.initHeader();
       this.initSidebar();
       this.initContent();
@@ -584,23 +584,23 @@ var Layout = function() {
     },
 
     //public function to fix the sidebar and content height accordingly
-    fixContentHeight: function() {
+    fixContentHeight: function () {
       handleSidebarAndContentHeight();
     },
 
-    initFixedSidebarHoverEffect: function() {
+    initFixedSidebarHoverEffect: function () {
       handleFixedSidebarHoverEffect();
     },
 
-    initFixedSidebar: function() {
+    initFixedSidebar: function () {
       handleFixedSidebar();
     },
 
-    getLayoutImgPath: function() {
+    getLayoutImgPath: function () {
       return Metronic.getAssetsPath() + layoutImgPath;
     },
 
-    getLayoutCssPath: function() {
+    getLayoutCssPath: function () {
       return Metronic.getAssetsPath() + layoutCssPath;
     }
   };
diff --git a/public/bower_components/angular-papaparse/angular-PapaParse.js b/public/bower_components/angular-papaparse/angular-PapaParse.js
new file mode 100644
index 0000000..7bae4db
--- /dev/null
+++ b/public/bower_components/angular-papaparse/angular-PapaParse.js
@@ -0,0 +1,30 @@
+'use strict';
+
+/**
+ * @ngdoc overview
+ * @name ngPapaParse
+ * @description
+ * # ngPapaParse
+ *
+ * Main module of the application.
+ */
+angular.module('ngPapaParse', []);
+
+(function() {
+  'use strict';
+
+  /**
+    * @ngdoc service
+    * @name ngPapaParse.Papa
+    * @description
+    * # Papa
+    * Factory in the ngPapaParse.
+   */
+  angular.module('ngPapaParse').factory('Papa', function() {
+    if (typeof Papa === 'undefined') {
+      throw new Error('angular-PapaParse\'s JavaScript requires PapaParse');
+    }
+    return Papa;
+  });
+
+}).call(this);
diff --git a/public/bower_components/jstree/jstree.js b/public/bower_components/jstree/jstree.js
new file mode 100644
index 0000000..48ee5ce
--- /dev/null
+++ b/public/bower_components/jstree/jstree.js
@@ -0,0 +1,7781 @@
+/*globals jQuery, define, module, exports, require, window, document, postMessage */
+(function (factory) {
+	"use strict";
+	if (typeof define === 'function' && define.amd) {
+		define(['jquery'], factory);
+	}
+	else if(typeof module !== 'undefined' && module.exports) {
+		module.exports = factory(require('jquery'));
+	}
+	else {
+		factory(jQuery);
+	}
+}(function ($, undefined) {
+	"use strict";
+/*!
+ * jsTree 3.2.1
+ * http://jstree.com/
+ *
+ * Copyright (c) 2014 Ivan Bozhanov (http://vakata.com)
+ *
+ * Licensed same as jquery - under the terms of the MIT License
+ *   http://www.opensource.org/licenses/mit-license.php
+ */
+/*!
+ * if using jslint please allow for the jQuery global and use following options:
+ * jslint: browser: true, ass: true, bitwise: true, continue: true, nomen: true, plusplus: true, regexp: true, unparam: true, todo: true, white: true
+ */
+
+	// prevent another load? maybe there is a better way?
+	if($.jstree) {
+		return;
+	}
+
+	/**
+	 * ### jsTree core functionality
+	 */
+
+	// internal variables
+	var instance_counter = 0,
+		ccp_node = false,
+		ccp_mode = false,
+		ccp_inst = false,
+		themes_loaded = [],
+		src = $('script:last').attr('src'),
+		document = window.document, // local variable is always faster to access then a global
+		_node = document.createElement('LI'), _temp1, _temp2;
+
+	_node.setAttribute('role', 'treeitem');
+	_temp1 = document.createElement('I');
+	_temp1.className = 'jstree-icon jstree-ocl';
+	_temp1.setAttribute('role', 'presentation');
+	_node.appendChild(_temp1);
+	_temp1 = document.createElement('A');
+	_temp1.className = 'jstree-anchor';
+	_temp1.setAttribute('href','#');
+	_temp1.setAttribute('tabindex','-1');
+	_temp2 = document.createElement('I');
+	_temp2.className = 'jstree-icon jstree-themeicon';
+	_temp2.setAttribute('role', 'presentation');
+	_temp1.appendChild(_temp2);
+	_node.appendChild(_temp1);
+	_temp1 = _temp2 = null;
+
+
+	/**
+	 * holds all jstree related functions and variables, including the actual class and methods to create, access and manipulate instances.
+	 * @name $.jstree
+	 */
+	$.jstree = {
+		/**
+		 * specifies the jstree version in use
+		 * @name $.jstree.version
+		 */
+		version : '3.2.1',
+		/**
+		 * holds all the default options used when creating new instances
+		 * @name $.jstree.defaults
+		 */
+		defaults : {
+			/**
+			 * configure which plugins will be active on an instance. Should be an array of strings, where each element is a plugin name. The default is `[]`
+			 * @name $.jstree.defaults.plugins
+			 */
+			plugins : []
+		},
+		/**
+		 * stores all loaded jstree plugins (used internally)
+		 * @name $.jstree.plugins
+		 */
+		plugins : {},
+		path : src && src.indexOf('/') !== -1 ? src.replace(/\/[^\/]+$/,'') : '',
+		idregex : /[\\:&!^|()\[\]<>@*'+~#";.,=\- \/${}%?`]/g,
+		root : '#'
+	};
+	/**
+	 * creates a jstree instance
+	 * @name $.jstree.create(el [, options])
+	 * @param {DOMElement|jQuery|String} el the element to create the instance on, can be jQuery extended or a selector
+	 * @param {Object} options options for this instance (extends `$.jstree.defaults`)
+	 * @return {jsTree} the new instance
+	 */
+	$.jstree.create = function (el, options) {
+		var tmp = new $.jstree.core(++instance_counter),
+			opt = options;
+		options = $.extend(true, {}, $.jstree.defaults, options);
+		if(opt && opt.plugins) {
+			options.plugins = opt.plugins;
+		}
+		$.each(options.plugins, function (i, k) {
+			if(i !== 'core') {
+				tmp = tmp.plugin(k, options[k]);
+			}
+		});
+		$(el).data('jstree', tmp);
+		tmp.init(el, options);
+		return tmp;
+	};
+	/**
+	 * remove all traces of jstree from the DOM and destroy all instances
+	 * @name $.jstree.destroy()
+	 */
+	$.jstree.destroy = function () {
+		$('.jstree:jstree').jstree('destroy');
+		$(document).off('.jstree');
+	};
+	/**
+	 * the jstree class constructor, used only internally
+	 * @private
+	 * @name $.jstree.core(id)
+	 * @param {Number} id this instance's index
+	 */
+	$.jstree.core = function (id) {
+		this._id = id;
+		this._cnt = 0;
+		this._wrk = null;
+		this._data = {
+			core : {
+				themes : {
+					name : false,
+					dots : false,
+					icons : false
+				},
+				selected : [],
+				last_error : {},
+				working : false,
+				worker_queue : [],
+				focused : null
+			}
+		};
+	};
+	/**
+	 * get a reference to an existing instance
+	 *
+	 * __Examples__
+	 *
+	 *	// provided a container with an ID of "tree", and a nested node with an ID of "branch"
+	 *	// all of there will return the same instance
+	 *	$.jstree.reference('tree');
+	 *	$.jstree.reference('#tree');
+	 *	$.jstree.reference($('#tree'));
+	 *	$.jstree.reference(document.getElementByID('tree'));
+	 *	$.jstree.reference('branch');
+	 *	$.jstree.reference('#branch');
+	 *	$.jstree.reference($('#branch'));
+	 *	$.jstree.reference(document.getElementByID('branch'));
+	 *
+	 * @name $.jstree.reference(needle)
+	 * @param {DOMElement|jQuery|String} needle
+	 * @return {jsTree|null} the instance or `null` if not found
+	 */
+	$.jstree.reference = function (needle) {
+		var tmp = null,
+			obj = null;
+		if(needle && needle.id && (!needle.tagName || !needle.nodeType)) { needle = needle.id; }
+
+		if(!obj || !obj.length) {
+			try { obj = $(needle); } catch (ignore) { }
+		}
+		if(!obj || !obj.length) {
+			try { obj = $('#' + needle.replace($.jstree.idregex,'\\$&')); } catch (ignore) { }
+		}
+		if(obj && obj.length && (obj = obj.closest('.jstree')).length && (obj = obj.data('jstree'))) {
+			tmp = obj;
+		}
+		else {
+			$('.jstree').each(function () {
+				var inst = $(this).data('jstree');
+				if(inst && inst._model.data[needle]) {
+					tmp = inst;
+					return false;
+				}
+			});
+		}
+		return tmp;
+	};
+	/**
+	 * Create an instance, get an instance or invoke a command on a instance.
+	 *
+	 * If there is no instance associated with the current node a new one is created and `arg` is used to extend `$.jstree.defaults` for this new instance. There would be no return value (chaining is not broken).
+	 *
+	 * If there is an existing instance and `arg` is a string the command specified by `arg` is executed on the instance, with any additional arguments passed to the function. If the function returns a value it will be returned (chaining could break depending on function).
+	 *
+	 * If there is an existing instance and `arg` is not a string the instance itself is returned (similar to `$.jstree.reference`).
+	 *
+	 * In any other case - nothing is returned and chaining is not broken.
+	 *
+	 * __Examples__
+	 *
+	 *	$('#tree1').jstree(); // creates an instance
+	 *	$('#tree2').jstree({ plugins : [] }); // create an instance with some options
+	 *	$('#tree1').jstree('open_node', '#branch_1'); // call a method on an existing instance, passing additional arguments
+	 *	$('#tree2').jstree(); // get an existing instance (or create an instance)
+	 *	$('#tree2').jstree(true); // get an existing instance (will not create new instance)
+	 *	$('#branch_1').jstree().select_node('#branch_1'); // get an instance (using a nested element and call a method)
+	 *
+	 * @name $().jstree([arg])
+	 * @param {String|Object} arg
+	 * @return {Mixed}
+	 */
+	$.fn.jstree = function (arg) {
+		// check for string argument
+		var is_method	= (typeof arg === 'string'),
+			args		= Array.prototype.slice.call(arguments, 1),
+			result		= null;
+		if(arg === true && !this.length) { return false; }
+		this.each(function () {
+			// get the instance (if there is one) and method (if it exists)
+			var instance = $.jstree.reference(this),
+				method = is_method && instance ? instance[arg] : null;
+			// if calling a method, and method is available - execute on the instance
+			result = is_method && method ?
+				method.apply(instance, args) :
+				null;
+			// if there is no instance and no method is being called - create one
+			if(!instance && !is_method && (arg === undefined || $.isPlainObject(arg))) {
+				$.jstree.create(this, arg);
+			}
+			// if there is an instance and no method is called - return the instance
+			if( (instance && !is_method) || arg === true ) {
+				result = instance || false;
+			}
+			// if there was a method call which returned a result - break and return the value
+			if(result !== null && result !== undefined) {
+				return false;
+			}
+		});
+		// if there was a method call with a valid return value - return that, otherwise continue the chain
+		return result !== null && result !== undefined ?
+			result : this;
+	};
+	/**
+	 * used to find elements containing an instance
+	 *
+	 * __Examples__
+	 *
+	 *	$('div:jstree').each(function () {
+	 *		$(this).jstree('destroy');
+	 *	});
+	 *
+	 * @name $(':jstree')
+	 * @return {jQuery}
+	 */
+	$.expr[':'].jstree = $.expr.createPseudo(function(search) {
+		return function(a) {
+			return $(a).hasClass('jstree') &&
+				$(a).data('jstree') !== undefined;
+		};
+	});
+
+	/**
+	 * stores all defaults for the core
+	 * @name $.jstree.defaults.core
+	 */
+	$.jstree.defaults.core = {
+		/**
+		 * data configuration
+		 *
+		 * If left as `false` the HTML inside the jstree container element is used to populate the tree (that should be an unordered list with list items).
+		 *
+		 * You can also pass in a HTML string or a JSON array here.
+		 *
+		 * It is possible to pass in a standard jQuery-like AJAX config and jstree will automatically determine if the response is JSON or HTML and use that to populate the tree.
+		 * In addition to the standard jQuery ajax options here you can suppy functions for `data` and `url`, the functions will be run in the current instance's scope and a param will be passed indicating which node is being loaded, the return value of those functions will be used.
+		 *
+		 * The last option is to specify a function, that function will receive the node being loaded as argument and a second param which is a function which should be called with the result.
+		 *
+		 * __Examples__
+		 *
+		 *	// AJAX
+		 *	$('#tree').jstree({
+		 *		'core' : {
+		 *			'data' : {
+		 *				'url' : '/get/children/',
+		 *				'data' : function (node) {
+		 *					return { 'id' : node.id };
+		 *				}
+		 *			}
+		 *		});
+		 *
+		 *	// direct data
+		 *	$('#tree').jstree({
+		 *		'core' : {
+		 *			'data' : [
+		 *				'Simple root node',
+		 *				{
+		 *					'id' : 'node_2',
+		 *					'text' : 'Root node with options',
+		 *					'state' : { 'opened' : true, 'selected' : true },
+		 *					'children' : [ { 'text' : 'Child 1' }, 'Child 2']
+		 *				}
+		 *			]
+		 *		});
+		 *
+		 *	// function
+		 *	$('#tree').jstree({
+		 *		'core' : {
+		 *			'data' : function (obj, callback) {
+		 *				callback.call(this, ['Root 1', 'Root 2']);
+		 *			}
+		 *		});
+		 *
+		 * @name $.jstree.defaults.core.data
+		 */
+		data			: false,
+		/**
+		 * configure the various strings used throughout the tree
+		 *
+		 * You can use an object where the key is the string you need to replace and the value is your replacement.
+		 * Another option is to specify a function which will be called with an argument of the needed string and should return the replacement.
+		 * If left as `false` no replacement is made.
+		 *
+		 * __Examples__
+		 *
+		 *	$('#tree').jstree({
+		 *		'core' : {
+		 *			'strings' : {
+		 *				'Loading ...' : 'Please wait ...'
+		 *			}
+		 *		}
+		 *	});
+		 *
+		 * @name $.jstree.defaults.core.strings
+		 */
+		strings			: false,
+		/**
+		 * determines what happens when a user tries to modify the structure of the tree
+		 * If left as `false` all operations like create, rename, delete, move or copy are prevented.
+		 * You can set this to `true` to allow all interactions or use a function to have better control.
+		 *
+		 * __Examples__
+		 *
+		 *	$('#tree').jstree({
+		 *		'core' : {
+		 *			'check_callback' : function (operation, node, node_parent, node_position, more) {
+		 *				// operation can be 'create_node', 'rename_node', 'delete_node', 'move_node' or 'copy_node'
+		 *				// in case of 'rename_node' node_position is filled with the new node name
+		 *				return operation === 'rename_node' ? true : false;
+		 *			}
+		 *		}
+		 *	});
+		 *
+		 * @name $.jstree.defaults.core.check_callback
+		 */
+		check_callback	: false,
+		/**
+		 * a callback called with a single object parameter in the instance's scope when something goes wrong (operation prevented, ajax failed, etc)
+		 * @name $.jstree.defaults.core.error
+		 */
+		error			: $.noop,
+		/**
+		 * the open / close animation duration in milliseconds - set this to `false` to disable the animation (default is `200`)
+		 * @name $.jstree.defaults.core.animation
+		 */
+		animation		: 200,
+		/**
+		 * a boolean indicating if multiple nodes can be selected
+		 * @name $.jstree.defaults.core.multiple
+		 */
+		multiple		: true,
+		/**
+		 * theme configuration object
+		 * @name $.jstree.defaults.core.themes
+		 */
+		themes			: {
+			/**
+			 * the name of the theme to use (if left as `false` the default theme is used)
+			 * @name $.jstree.defaults.core.themes.name
+			 */
+			name			: false,
+			/**
+			 * the URL of the theme's CSS file, leave this as `false` if you have manually included the theme CSS (recommended). You can set this to `true` too which will try to autoload the theme.
+			 * @name $.jstree.defaults.core.themes.url
+			 */
+			url				: false,
+			/**
+			 * the location of all jstree themes - only used if `url` is set to `true`
+			 * @name $.jstree.defaults.core.themes.dir
+			 */
+			dir				: false,
+			/**
+			 * a boolean indicating if connecting dots are shown
+			 * @name $.jstree.defaults.core.themes.dots
+			 */
+			dots			: true,
+			/**
+			 * a boolean indicating if node icons are shown
+			 * @name $.jstree.defaults.core.themes.icons
+			 */
+			icons			: true,
+			/**
+			 * a boolean indicating if the tree background is striped
+			 * @name $.jstree.defaults.core.themes.stripes
+			 */
+			stripes			: false,
+			/**
+			 * a string (or boolean `false`) specifying the theme variant to use (if the theme supports variants)
+			 * @name $.jstree.defaults.core.themes.variant
+			 */
+			variant			: false,
+			/**
+			 * a boolean specifying if a reponsive version of the theme should kick in on smaller screens (if the theme supports it). Defaults to `false`.
+			 * @name $.jstree.defaults.core.themes.responsive
+			 */
+			responsive		: false
+		},
+		/**
+		 * if left as `true` all parents of all selected nodes will be opened once the tree loads (so that all selected nodes are visible to the user)
+		 * @name $.jstree.defaults.core.expand_selected_onload
+		 */
+		expand_selected_onload : true,
+		/**
+		 * if left as `true` web workers will be used to parse incoming JSON data where possible, so that the UI will not be blocked by large requests. Workers are however about 30% slower. Defaults to `true`
+		 * @name $.jstree.defaults.core.worker
+		 */
+		worker : true,
+		/**
+		 * Force node text to plain text (and escape HTML). Defaults to `false`
+		 * @name $.jstree.defaults.core.force_text
+		 */
+		force_text : false,
+		/**
+		 * Should the node should be toggled if the text is double clicked . Defaults to `true`
+		 * @name $.jstree.defaults.core.dblclick_toggle
+		 */
+		dblclick_toggle : true
+	};
+	$.jstree.core.prototype = {
+		/**
+		 * used to decorate an instance with a plugin. Used internally.
+		 * @private
+		 * @name plugin(deco [, opts])
+		 * @param  {String} deco the plugin to decorate with
+		 * @param  {Object} opts options for the plugin
+		 * @return {jsTree}
+		 */
+		plugin : function (deco, opts) {
+			var Child = $.jstree.plugins[deco];
+			if(Child) {
+				this._data[deco] = {};
+				Child.prototype = this;
+				return new Child(opts, this);
+			}
+			return this;
+		},
+		/**
+		 * initialize the instance. Used internally.
+		 * @private
+		 * @name init(el, optons)
+		 * @param {DOMElement|jQuery|String} el the element we are transforming
+		 * @param {Object} options options for this instance
+		 * @trigger init.jstree, loading.jstree, loaded.jstree, ready.jstree, changed.jstree
+		 */
+		init : function (el, options) {
+			this._model = {
+				data : {},
+				changed : [],
+				force_full_redraw : false,
+				redraw_timeout : false,
+				default_state : {
+					loaded : true,
+					opened : false,
+					selected : false,
+					disabled : false
+				}
+			};
+			this._model.data[$.jstree.root] = {
+				id : $.jstree.root,
+				parent : null,
+				parents : [],
+				children : [],
+				children_d : [],
+				state : { loaded : false }
+			};
+
+			this.element = $(el).addClass('jstree jstree-' + this._id);
+			this.settings = options;
+
+			this._data.core.ready = false;
+			this._data.core.loaded = false;
+			this._data.core.rtl = (this.element.css("direction") === "rtl");
+			this.element[this._data.core.rtl ? 'addClass' : 'removeClass']("jstree-rtl");
+			this.element.attr('role','tree');
+			if(this.settings.core.multiple) {
+				this.element.attr('aria-multiselectable', true);
+			}
+			if(!this.element.attr('tabindex')) {
+				this.element.attr('tabindex','0');
+			}
+
+			this.bind();
+			/**
+			 * triggered after all events are bound
+			 * @event
+			 * @name init.jstree
+			 */
+			this.trigger("init");
+
+			this._data.core.original_container_html = this.element.find(" > ul > li").clone(true);
+			this._data.core.original_container_html
+				.find("li").addBack()
+				.contents().filter(function() {
+					return this.nodeType === 3 && (!this.nodeValue || /^\s+$/.test(this.nodeValue));
+				})
+				.remove();
+			this.element.html("<"+"ul class='jstree-container-ul jstree-children' role='group'><"+"li id='j"+this._id+"_loading' class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='tree-item'><i class='jstree-icon jstree-ocl'></i><"+"a class='jstree-anchor' href='#'><i class='jstree-icon jstree-themeicon-hidden'></i>" + this.get_string("Loading ...") + "</a></li></ul>");
+			this.element.attr('aria-activedescendant','j' + this._id + '_loading');
+			this._data.core.li_height = this.get_container_ul().children("li").first().height() || 24;
+			/**
+			 * triggered after the loading text is shown and before loading starts
+			 * @event
+			 * @name loading.jstree
+			 */
+			this.trigger("loading");
+			this.load_node($.jstree.root);
+		},
+		/**
+		 * destroy an instance
+		 * @name destroy()
+		 * @param  {Boolean} keep_html if not set to `true` the container will be emptied, otherwise the current DOM elements will be kept intact
+		 */
+		destroy : function (keep_html) {
+			if(this._wrk) {
+				try {
+					window.URL.revokeObjectURL(this._wrk);
+					this._wrk = null;
+				}
+				catch (ignore) { }
+			}
+			if(!keep_html) { this.element.empty(); }
+			this.teardown();
+		},
+		/**
+		 * part of the destroying of an instance. Used internally.
+		 * @private
+		 * @name teardown()
+		 */
+		teardown : function () {
+			this.unbind();
+			this.element
+				.removeClass('jstree')
+				.removeData('jstree')
+				.find("[class^='jstree']")
+					.addBack()
+					.attr("class", function () { return this.className.replace(/jstree[^ ]*|$/ig,''); });
+			this.element = null;
+		},
+		/**
+		 * bind all events. Used internally.
+		 * @private
+		 * @name bind()
+		 */
+		bind : function () {
+			var word = '',
+				tout = null,
+				was_click = 0;
+			this.element
+				.on("dblclick.jstree", function (e) {
+						if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; }
+						if(document.selection && document.selection.empty) {
+							document.selection.empty();
+						}
+						else {
+							if(window.getSelection) {
+								var sel = window.getSelection();
+								try {
+									sel.removeAllRanges();
+									sel.collapse();
+								} catch (ignore) { }
+							}
+						}
+					})
+				.on("mousedown.jstree", $.proxy(function (e) {
+						if(e.target === this.element[0]) {
+							e.preventDefault(); // prevent losing focus when clicking scroll arrows (FF, Chrome)
+							was_click = +(new Date()); // ie does not allow to prevent losing focus
+						}
+					}, this))
+				.on("mousedown.jstree", ".jstree-ocl", function (e) {
+						e.preventDefault(); // prevent any node inside from losing focus when clicking the open/close icon
+					})
+				.on("click.jstree", ".jstree-ocl", $.proxy(function (e) {
+						this.toggle_node(e.target);
+					}, this))
+				.on("dblclick.jstree", ".jstree-anchor", $.proxy(function (e) {
+						if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; }
+						if(this.settings.core.dblclick_toggle) {
+							this.toggle_node(e.target);
+						}
+					}, this))
+				.on("click.jstree", ".jstree-anchor", $.proxy(function (e) {
+						e.preventDefault();
+						if(e.currentTarget !== document.activeElement) { $(e.currentTarget).focus(); }
+						this.activate_node(e.currentTarget, e);
+					}, this))
+				.on('keydown.jstree', '.jstree-anchor', $.proxy(function (e) {
+						if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; }
+						if(e.which !== 32 && e.which !== 13 && (e.shiftKey || e.ctrlKey || e.altKey || e.metaKey)) { return true; }
+						var o = null;
+						if(this._data.core.rtl) {
+							if(e.which === 37) { e.which = 39; }
+							else if(e.which === 39) { e.which = 37; }
+						}
+						switch(e.which) {
+							case 32: // aria defines space only with Ctrl
+								if(e.ctrlKey) {
+									e.type = "click";
+									$(e.currentTarget).trigger(e);
+								}
+								break;
+							case 13: // enter
+								e.type = "click";
+								$(e.currentTarget).trigger(e);
+								break;
+							case 37: // right
+								e.preventDefault();
+								if(this.is_open(e.currentTarget)) {
+									this.close_node(e.currentTarget);
+								}
+								else {
+									o = this.get_parent(e.currentTarget);
+									if(o && o.id !== $.jstree.root) { this.get_node(o, true).children('.jstree-anchor').focus(); }
+								}
+								break;
+							case 38: // up
+								e.preventDefault();
+								o = this.get_prev_dom(e.currentTarget);
+								if(o && o.length) { o.children('.jstree-anchor').focus(); }
+								break;
+							case 39: // left
+								e.preventDefault();
+								if(this.is_closed(e.currentTarget)) {
+									this.open_node(e.currentTarget, function (o) { this.get_node(o, true).children('.jstree-anchor').focus(); });
+								}
+								else if (this.is_open(e.currentTarget)) {
+									o = this.get_node(e.currentTarget, true).children('.jstree-children')[0];
+									if(o) { $(this._firstChild(o)).children('.jstree-anchor').focus(); }
+								}
+								break;
+							case 40: // down
+								e.preventDefault();
+								o = this.get_next_dom(e.currentTarget);
+								if(o && o.length) { o.children('.jstree-anchor').focus(); }
+								break;
+							case 106: // aria defines * on numpad as open_all - not very common
+								this.open_all();
+								break;
+							case 36: // home
+								e.preventDefault();
+								o = this._firstChild(this.get_container_ul()[0]);
+								if(o) { $(o).children('.jstree-anchor').filter(':visible').focus(); }
+								break;
+							case 35: // end
+								e.preventDefault();
+								this.element.find('.jstree-anchor').filter(':visible').last().focus();
+								break;
+							/*!
+							// delete
+							case 46:
+								e.preventDefault();
+								o = this.get_node(e.currentTarget);
+								if(o && o.id && o.id !== $.jstree.root) {
+									o = this.is_selected(o) ? this.get_selected() : o;
+									this.delete_node(o);
+								}
+								break;
+							// f2
+							case 113:
+								e.preventDefault();
+								o = this.get_node(e.currentTarget);
+								if(o && o.id && o.id !== $.jstree.root) {
+									// this.edit(o);
+								}
+								break;
+							default:
+								// console.log(e.which);
+								break;
+							*/
+						}
+					}, this))
+				.on("load_node.jstree", $.proxy(function (e, data) {
+						if(data.status) {
+							if(data.node.id === $.jstree.root && !this._data.core.loaded) {
+								this._data.core.loaded = true;
+								if(this._firstChild(this.get_container_ul()[0])) {
+									this.element.attr('aria-activedescendant',this._firstChild(this.get_container_ul()[0]).id);
+								}
+								/**
+								 * triggered after the root node is loaded for the first time
+								 * @event
+								 * @name loaded.jstree
+								 */
+								this.trigger("loaded");
+							}
+							if(!this._data.core.ready) {
+								setTimeout($.proxy(function() {
+									if(this.element && !this.get_container_ul().find('.jstree-loading').length) {
+										this._data.core.ready = true;
+										if(this._data.core.selected.length) {
+											if(this.settings.core.expand_selected_onload) {
+												var tmp = [], i, j;
+												for(i = 0, j = this._data.core.selected.length; i < j; i++) {
+													tmp = tmp.concat(this._model.data[this._data.core.selected[i]].parents);
+												}
+												tmp = $.vakata.array_unique(tmp);
+												for(i = 0, j = tmp.length; i < j; i++) {
+													this.open_node(tmp[i], false, 0);
+												}
+											}
+											this.trigger('changed', { 'action' : 'ready', 'selected' : this._data.core.selected });
+										}
+										/**
+										 * triggered after all nodes are finished loading
+										 * @event
+										 * @name ready.jstree
+										 */
+										this.trigger("ready");
+									}
+								}, this), 0);
+							}
+						}
+					}, this))
+				// quick searching when the tree is focused
+				.on('keypress.jstree', $.proxy(function (e) {
+						if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; }
+						if(tout) { clearTimeout(tout); }
+						tout = setTimeout(function () {
+							word = '';
+						}, 500);
+
+						var chr = String.fromCharCode(e.which).toLowerCase(),
+							col = this.element.find('.jstree-anchor').filter(':visible'),
+							ind = col.index(document.activeElement) || 0,
+							end = false;
+						word += chr;
+
+						// match for whole word from current node down (including the current node)
+						if(word.length > 1) {
+							col.slice(ind).each($.proxy(function (i, v) {
+								if($(v).text().toLowerCase().indexOf(word) === 0) {
+									$(v).focus();
+									end = true;
+									return false;
+								}
+							}, this));
+							if(end) { return; }
+
+							// match for whole word from the beginning of the tree
+							col.slice(0, ind).each($.proxy(function (i, v) {
+								if($(v).text().toLowerCase().indexOf(word) === 0) {
+									$(v).focus();
+									end = true;
+									return false;
+								}
+							}, this));
+							if(end) { return; }
+						}
+						// list nodes that start with that letter (only if word consists of a single char)
+						if(new RegExp('^' + chr.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&') + '+$').test(word)) {
+							// search for the next node starting with that letter
+							col.slice(ind + 1).each($.proxy(function (i, v) {
+								if($(v).text().toLowerCase().charAt(0) === chr) {
+									$(v).focus();
+									end = true;
+									return false;
+								}
+							}, this));
+							if(end) { return; }
+
+							// search from the beginning
+							col.slice(0, ind + 1).each($.proxy(function (i, v) {
+								if($(v).text().toLowerCase().charAt(0) === chr) {
+									$(v).focus();
+									end = true;
+									return false;
+								}
+							}, this));
+							if(end) { return; }
+						}
+					}, this))
+				// THEME RELATED
+				.on("init.jstree", $.proxy(function () {
+						var s = this.settings.core.themes;
+						this._data.core.themes.dots			= s.dots;
+						this._data.core.themes.stripes		= s.stripes;
+						this._data.core.themes.icons		= s.icons;
+						this.set_theme(s.name || "default", s.url);
+						this.set_theme_variant(s.variant);
+					}, this))
+				.on("loading.jstree", $.proxy(function () {
+						this[ this._data.core.themes.dots ? "show_dots" : "hide_dots" ]();
+						this[ this._data.core.themes.icons ? "show_icons" : "hide_icons" ]();
+						this[ this._data.core.themes.stripes ? "show_stripes" : "hide_stripes" ]();
+					}, this))
+				.on('blur.jstree', '.jstree-anchor', $.proxy(function (e) {
+						this._data.core.focused = null;
+						$(e.currentTarget).filter('.jstree-hovered').mouseleave();
+						this.element.attr('tabindex', '0');
+					}, this))
+				.on('focus.jstree', '.jstree-anchor', $.proxy(function (e) {
+						var tmp = this.get_node(e.currentTarget);
+						if(tmp && tmp.id) {
+							this._data.core.focused = tmp.id;
+						}
+						this.element.find('.jstree-hovered').not(e.currentTarget).mouseleave();
+						$(e.currentTarget).mouseenter();
+						this.element.attr('tabindex', '-1');
+					}, this))
+				.on('focus.jstree', $.proxy(function () {
+						if(+(new Date()) - was_click > 500 && !this._data.core.focused) {
+							was_click = 0;
+							var act = this.get_node(this.element.attr('aria-activedescendant'), true);
+							if(act) {
+								act.find('> .jstree-anchor').focus();
+							}
+						}
+					}, this))
+				.on('mouseenter.jstree', '.jstree-anchor', $.proxy(function (e) {
+						this.hover_node(e.currentTarget);
+					}, this))
+				.on('mouseleave.jstree', '.jstree-anchor', $.proxy(function (e) {
+						this.dehover_node(e.currentTarget);
+					}, this));
+		},
+		/**
+		 * part of the destroying of an instance. Used internally.
+		 * @private
+		 * @name unbind()
+		 */
+		unbind : function () {
+			this.element.off('.jstree');
+			$(document).off('.jstree-' + this._id);
+		},
+		/**
+		 * trigger an event. Used internally.
+		 * @private
+		 * @name trigger(ev [, data])
+		 * @param  {String} ev the name of the event to trigger
+		 * @param  {Object} data additional data to pass with the event
+		 */
+		trigger : function (ev, data) {
+			if(!data) {
+				data = {};
+			}
+			data.instance = this;
+			this.element.triggerHandler(ev.replace('.jstree','') + '.jstree', data);
+		},
+		/**
+		 * returns the jQuery extended instance container
+		 * @name get_container()
+		 * @return {jQuery}
+		 */
+		get_container : function () {
+			return this.element;
+		},
+		/**
+		 * returns the jQuery extended main UL node inside the instance container. Used internally.
+		 * @private
+		 * @name get_container_ul()
+		 * @return {jQuery}
+		 */
+		get_container_ul : function () {
+			return this.element.children(".jstree-children").first();
+		},
+		/**
+		 * gets string replacements (localization). Used internally.
+		 * @private
+		 * @name get_string(key)
+		 * @param  {String} key
+		 * @return {String}
+		 */
+		get_string : function (key) {
+			var a = this.settings.core.strings;
+			if($.isFunction(a)) { return a.call(this, key); }
+			if(a && a[key]) { return a[key]; }
+			return key;
+		},
+		/**
+		 * gets the first child of a DOM node. Used internally.
+		 * @private
+		 * @name _firstChild(dom)
+		 * @param  {DOMElement} dom
+		 * @return {DOMElement}
+		 */
+		_firstChild : function (dom) {
+			dom = dom ? dom.firstChild : null;
+			while(dom !== null && dom.nodeType !== 1) {
+				dom = dom.nextSibling;
+			}
+			return dom;
+		},
+		/**
+		 * gets the next sibling of a DOM node. Used internally.
+		 * @private
+		 * @name _nextSibling(dom)
+		 * @param  {DOMElement} dom
+		 * @return {DOMElement}
+		 */
+		_nextSibling : function (dom) {
+			dom = dom ? dom.nextSibling : null;
+			while(dom !== null && dom.nodeType !== 1) {
+				dom = dom.nextSibling;
+			}
+			return dom;
+		},
+		/**
+		 * gets the previous sibling of a DOM node. Used internally.
+		 * @private
+		 * @name _previousSibling(dom)
+		 * @param  {DOMElement} dom
+		 * @return {DOMElement}
+		 */
+		_previousSibling : function (dom) {
+			dom = dom ? dom.previousSibling : null;
+			while(dom !== null && dom.nodeType !== 1) {
+				dom = dom.previousSibling;
+			}
+			return dom;
+		},
+		/**
+		 * get the JSON representation of a node (or the actual jQuery extended DOM node) by using any input (child DOM element, ID string, selector, etc)
+		 * @name get_node(obj [, as_dom])
+		 * @param  {mixed} obj
+		 * @param  {Boolean} as_dom
+		 * @return {Object|jQuery}
+		 */
+		get_node : function (obj, as_dom) {
+			if(obj && obj.id) {
+				obj = obj.id;
+			}
+			var dom;
+			try {
+				if(this._model.data[obj]) {
+					obj = this._model.data[obj];
+				}
+				else if(typeof obj === "string" && this._model.data[obj.replace(/^#/, '')]) {
+					obj = this._model.data[obj.replace(/^#/, '')];
+				}
+				else if(typeof obj === "string" && (dom = $('#' + obj.replace($.jstree.idregex,'\\$&'), this.element)).length && this._model.data[dom.closest('.jstree-node').attr('id')]) {
+					obj = this._model.data[dom.closest('.jstree-node').attr('id')];
+				}
+				else if((dom = $(obj, this.element)).length && this._model.data[dom.closest('.jstree-node').attr('id')]) {
+					obj = this._model.data[dom.closest('.jstree-node').attr('id')];
+				}
+				else if((dom = $(obj, this.element)).length && dom.hasClass('jstree')) {
+					obj = this._model.data[$.jstree.root];
+				}
+				else {
+					return false;
+				}
+
+				if(as_dom) {
+					obj = obj.id === $.jstree.root ? this.element : $('#' + obj.id.replace($.jstree.idregex,'\\$&'), this.element);
+				}
+				return obj;
+			} catch (ex) { return false; }
+		},
+		/**
+		 * get the path to a node, either consisting of node texts, or of node IDs, optionally glued together (otherwise an array)
+		 * @name get_path(obj [, glue, ids])
+		 * @param  {mixed} obj the node
+		 * @param  {String} glue if you want the path as a string - pass the glue here (for example '/'), if a falsy value is supplied here, an array is returned
+		 * @param  {Boolean} ids if set to true build the path using ID, otherwise node text is used
+		 * @return {mixed}
+		 */
+		get_path : function (obj, glue, ids) {
+			obj = obj.parents ? obj : this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root || !obj.parents) {
+				return false;
+			}
+			var i, j, p = [];
+			p.push(ids ? obj.id : obj.text);
+			for(i = 0, j = obj.parents.length; i < j; i++) {
+				p.push(ids ? obj.parents[i] : this.get_text(obj.parents[i]));
+			}
+			p = p.reverse().slice(1);
+			return glue ? p.join(glue) : p;
+		},
+		/**
+		 * get the next visible node that is below the `obj` node. If `strict` is set to `true` only sibling nodes are returned.
+		 * @name get_next_dom(obj [, strict])
+		 * @param  {mixed} obj
+		 * @param  {Boolean} strict
+		 * @return {jQuery}
+		 */
+		get_next_dom : function (obj, strict) {
+			var tmp;
+			obj = this.get_node(obj, true);
+			if(obj[0] === this.element[0]) {
+				tmp = this._firstChild(this.get_container_ul()[0]);
+				while (tmp && tmp.offsetHeight === 0) {
+					tmp = this._nextSibling(tmp);
+				}
+				return tmp ? $(tmp) : false;
+			}
+			if(!obj || !obj.length) {
+				return false;
+			}
+			if(strict) {
+				tmp = obj[0];
+				do {
+					tmp = this._nextSibling(tmp);
+				} while (tmp && tmp.offsetHeight === 0);
+				return tmp ? $(tmp) : false;
+			}
+			if(obj.hasClass("jstree-open")) {
+				tmp = this._firstChild(obj.children('.jstree-children')[0]);
+				while (tmp && tmp.offsetHeight === 0) {
+					tmp = this._nextSibling(tmp);
+				}
+				if(tmp !== null) {
+					return $(tmp);
+				}
+			}
+			tmp = obj[0];
+			do {
+				tmp = this._nextSibling(tmp);
+			} while (tmp && tmp.offsetHeight === 0);
+			if(tmp !== null) {
+				return $(tmp);
+			}
+			return obj.parentsUntil(".jstree",".jstree-node").nextAll(".jstree-node:visible").first();
+		},
+		/**
+		 * get the previous visible node that is above the `obj` node. If `strict` is set to `true` only sibling nodes are returned.
+		 * @name get_prev_dom(obj [, strict])
+		 * @param  {mixed} obj
+		 * @param  {Boolean} strict
+		 * @return {jQuery}
+		 */
+		get_prev_dom : function (obj, strict) {
+			var tmp;
+			obj = this.get_node(obj, true);
+			if(obj[0] === this.element[0]) {
+				tmp = this.get_container_ul()[0].lastChild;
+				while (tmp && tmp.offsetHeight === 0) {
+					tmp = this._previousSibling(tmp);
+				}
+				return tmp ? $(tmp) : false;
+			}
+			if(!obj || !obj.length) {
+				return false;
+			}
+			if(strict) {
+				tmp = obj[0];
+				do {
+					tmp = this._previousSibling(tmp);
+				} while (tmp && tmp.offsetHeight === 0);
+				return tmp ? $(tmp) : false;
+			}
+			tmp = obj[0];
+			do {
+				tmp = this._previousSibling(tmp);
+			} while (tmp && tmp.offsetHeight === 0);
+			if(tmp !== null) {
+				obj = $(tmp);
+				while(obj.hasClass("jstree-open")) {
+					obj = obj.children(".jstree-children").first().children(".jstree-node:visible:last");
+				}
+				return obj;
+			}
+			tmp = obj[0].parentNode.parentNode;
+			return tmp && tmp.className && tmp.className.indexOf('jstree-node') !== -1 ? $(tmp) : false;
+		},
+		/**
+		 * get the parent ID of a node
+		 * @name get_parent(obj)
+		 * @param  {mixed} obj
+		 * @return {String}
+		 */
+		get_parent : function (obj) {
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) {
+				return false;
+			}
+			return obj.parent;
+		},
+		/**
+		 * get a jQuery collection of all the children of a node (node must be rendered)
+		 * @name get_children_dom(obj)
+		 * @param  {mixed} obj
+		 * @return {jQuery}
+		 */
+		get_children_dom : function (obj) {
+			obj = this.get_node(obj, true);
+			if(obj[0] === this.element[0]) {
+				return this.get_container_ul().children(".jstree-node");
+			}
+			if(!obj || !obj.length) {
+				return false;
+			}
+			return obj.children(".jstree-children").children(".jstree-node");
+		},
+		/**
+		 * checks if a node has children
+		 * @name is_parent(obj)
+		 * @param  {mixed} obj
+		 * @return {Boolean}
+		 */
+		is_parent : function (obj) {
+			obj = this.get_node(obj);
+			return obj && (obj.state.loaded === false || obj.children.length > 0);
+		},
+		/**
+		 * checks if a node is loaded (its children are available)
+		 * @name is_loaded(obj)
+		 * @param  {mixed} obj
+		 * @return {Boolean}
+		 */
+		is_loaded : function (obj) {
+			obj = this.get_node(obj);
+			return obj && obj.state.loaded;
+		},
+		/**
+		 * check if a node is currently loading (fetching children)
+		 * @name is_loading(obj)
+		 * @param  {mixed} obj
+		 * @return {Boolean}
+		 */
+		is_loading : function (obj) {
+			obj = this.get_node(obj);
+			return obj && obj.state && obj.state.loading;
+		},
+		/**
+		 * check if a node is opened
+		 * @name is_open(obj)
+		 * @param  {mixed} obj
+		 * @return {Boolean}
+		 */
+		is_open : function (obj) {
+			obj = this.get_node(obj);
+			return obj && obj.state.opened;
+		},
+		/**
+		 * check if a node is in a closed state
+		 * @name is_closed(obj)
+		 * @param  {mixed} obj
+		 * @return {Boolean}
+		 */
+		is_closed : function (obj) {
+			obj = this.get_node(obj);
+			return obj && this.is_parent(obj) && !obj.state.opened;
+		},
+		/**
+		 * check if a node has no children
+		 * @name is_leaf(obj)
+		 * @param  {mixed} obj
+		 * @return {Boolean}
+		 */
+		is_leaf : function (obj) {
+			return !this.is_parent(obj);
+		},
+		/**
+		 * loads a node (fetches its children using the `core.data` setting). Multiple nodes can be passed to by using an array.
+		 * @name load_node(obj [, callback])
+		 * @param  {mixed} obj
+		 * @param  {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives two arguments - the node and a boolean status
+		 * @return {Boolean}
+		 * @trigger load_node.jstree
+		 */
+		load_node : function (obj, callback) {
+			var k, l, i, j, c;
+			if($.isArray(obj)) {
+				this._load_nodes(obj.slice(), callback);
+				return true;
+			}
+			obj = this.get_node(obj);
+			if(!obj) {
+				if(callback) { callback.call(this, obj, false); }
+				return false;
+			}
+			// if(obj.state.loading) { } // the node is already loading - just wait for it to load and invoke callback? but if called implicitly it should be loaded again?
+			if(obj.state.loaded) {
+				obj.state.loaded = false;
+				for(k = 0, l = obj.children_d.length; k < l; k++) {
+					for(i = 0, j = obj.parents.length; i < j; i++) {
+						this._model.data[obj.parents[i]].children_d = $.vakata.array_remove_item(this._model.data[obj.parents[i]].children_d, obj.children_d[k]);
+					}
+					if(this._model.data[obj.children_d[k]].state.selected) {
+						c = true;
+						this._data.core.selected = $.vakata.array_remove_item(this._data.core.selected, obj.children_d[k]);
+					}
+					delete this._model.data[obj.children_d[k]];
+				}
+				obj.children = [];
+				obj.children_d = [];
+				if(c) {
+					this.trigger('changed', { 'action' : 'load_node', 'node' : obj, 'selected' : this._data.core.selected });
+				}
+			}
+			obj.state.failed = false;
+			obj.state.loading = true;
+			this.get_node(obj, true).addClass("jstree-loading").attr('aria-busy',true);
+			this._load_node(obj, $.proxy(function (status) {
+				obj = this._model.data[obj.id];
+				obj.state.loading = false;
+				obj.state.loaded = status;
+				obj.state.failed = !obj.state.loaded;
+				var dom = this.get_node(obj, true), i = 0, j = 0, m = this._model.data, has_children = false;
+				for(i = 0, j = obj.children.length; i < j; i++) {
+					if(m[obj.children[i]] && !m[obj.children[i]].state.hidden) {
+						has_children = true;
+						break;
+					}
+				}
+				if(obj.state.loaded && !has_children && dom && dom.length && !dom.hasClass('jstree-leaf')) {
+					dom.removeClass('jstree-closed jstree-open').addClass('jstree-leaf');
+				}
+				dom.removeClass("jstree-loading").attr('aria-busy',false);
+				/**
+				 * triggered after a node is loaded
+				 * @event
+				 * @name load_node.jstree
+				 * @param {Object} node the node that was loading
+				 * @param {Boolean} status was the node loaded successfully
+				 */
+				this.trigger('load_node', { "node" : obj, "status" : status });
+				if(callback) {
+					callback.call(this, obj, status);
+				}
+			}, this));
+			return true;
+		},
+		/**
+		 * load an array of nodes (will also load unavailable nodes as soon as the appear in the structure). Used internally.
+		 * @private
+		 * @name _load_nodes(nodes [, callback])
+		 * @param  {array} nodes
+		 * @param  {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives one argument - the array passed to _load_nodes
+		 */
+		_load_nodes : function (nodes, callback, is_callback) {
+			var r = true,
+				c = function () { this._load_nodes(nodes, callback, true); },
+				m = this._model.data, i, j, tmp = [];
+			for(i = 0, j = nodes.length; i < j; i++) {
+				if(m[nodes[i]] && ( (!m[nodes[i]].state.loaded && !m[nodes[i]].state.failed) || !is_callback)) {
+					if(!this.is_loading(nodes[i])) {
+						this.load_node(nodes[i], c);
+					}
+					r = false;
+				}
+			}
+			if(r) {
+				for(i = 0, j = nodes.length; i < j; i++) {
+					if(m[nodes[i]] && m[nodes[i]].state.loaded) {
+						tmp.push(nodes[i]);
+					}
+				}
+				if(callback && !callback.done) {
+					callback.call(this, tmp);
+					callback.done = true;
+				}
+			}
+		},
+		/**
+		 * loads all unloaded nodes
+		 * @name load_all([obj, callback])
+		 * @param {mixed} obj the node to load recursively, omit to load all nodes in the tree
+		 * @param {function} callback a function to be executed once loading all the nodes is complete,
+		 * @trigger load_all.jstree
+		 */
+		load_all : function (obj, callback) {
+			if(!obj) { obj = $.jstree.root; }
+			obj = this.get_node(obj);
+			if(!obj) { return false; }
+			var to_load = [],
+				m = this._model.data,
+				c = m[obj.id].children_d,
+				i, j;
+			if(obj.state && !obj.state.loaded) {
+				to_load.push(obj.id);
+			}
+			for(i = 0, j = c.length; i < j; i++) {
+				if(m[c[i]] && m[c[i]].state && !m[c[i]].state.loaded) {
+					to_load.push(c[i]);
+				}
+			}
+			if(to_load.length) {
+				this._load_nodes(to_load, function () {
+					this.load_all(obj, callback);
+				});
+			}
+			else {
+				/**
+				 * triggered after a load_all call completes
+				 * @event
+				 * @name load_all.jstree
+				 * @param {Object} node the recursively loaded node
+				 */
+				if(callback) { callback.call(this, obj); }
+				this.trigger('load_all', { "node" : obj });
+			}
+		},
+		/**
+		 * handles the actual loading of a node. Used only internally.
+		 * @private
+		 * @name _load_node(obj [, callback])
+		 * @param  {mixed} obj
+		 * @param  {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives one argument - a boolean status
+		 * @return {Boolean}
+		 */
+		_load_node : function (obj, callback) {
+			var s = this.settings.core.data, t;
+			// use original HTML
+			if(!s) {
+				if(obj.id === $.jstree.root) {
+					return this._append_html_data(obj, this._data.core.original_container_html.clone(true), function (status) {
+						callback.call(this, status);
+					});
+				}
+				else {
+					return callback.call(this, false);
+				}
+				// return callback.call(this, obj.id === $.jstree.root ? this._append_html_data(obj, this._data.core.original_container_html.clone(true)) : false);
+			}
+			if($.isFunction(s)) {
+				return s.call(this, obj, $.proxy(function (d) {
+					if(d === false) {
+						callback.call(this, false);
+					}
+					this[typeof d === 'string' ? '_append_html_data' : '_append_json_data'](obj, typeof d === 'string' ? $($.parseHTML(d)).filter(function () { return this.nodeType !== 3; }) : d, function (status) {
+						callback.call(this, status);
+					});
+					// return d === false ? callback.call(this, false) : callback.call(this, this[typeof d === 'string' ? '_append_html_data' : '_append_json_data'](obj, typeof d === 'string' ? $(d) : d));
+				}, this));
+			}
+			if(typeof s === 'object') {
+				if(s.url) {
+					s = $.extend(true, {}, s);
+					if($.isFunction(s.url)) {
+						s.url = s.url.call(this, obj);
+					}
+					if($.isFunction(s.data)) {
+						s.data = s.data.call(this, obj);
+					}
+					return $.ajax(s)
+						.done($.proxy(function (d,t,x) {
+								var type = x.getResponseHeader('Content-Type');
+								if((type && type.indexOf('json') !== -1) || typeof d === "object") {
+									return this._append_json_data(obj, d, function (status) { callback.call(this, status); });
+									//return callback.call(this, this._append_json_data(obj, d));
+								}
+								if((type && type.indexOf('html') !== -1) || typeof d === "string") {
+									return this._append_html_data(obj, $($.parseHTML(d)).filter(function () { return this.nodeType !== 3; }), function (status) { callback.call(this, status); });
+									// return callback.call(this, this._append_html_data(obj, $(d)));
+								}
+								this._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'core', 'id' : 'core_04', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id, 'xhr' : x }) };
+								this.settings.core.error.call(this, this._data.core.last_error);
+								return callback.call(this, false);
+							}, this))
+						.fail($.proxy(function (f) {
+								callback.call(this, false);
+								this._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'core', 'id' : 'core_04', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id, 'xhr' : f }) };
+								this.settings.core.error.call(this, this._data.core.last_error);
+							}, this));
+				}
+				t = ($.isArray(s) || $.isPlainObject(s)) ? JSON.parse(JSON.stringify(s)) : s;
+				if(obj.id === $.jstree.root) {
+					return this._append_json_data(obj, t, function (status) {
+						callback.call(this, status);
+					});
+				}
+				else {
+					this._data.core.last_error = { 'error' : 'nodata', 'plugin' : 'core', 'id' : 'core_05', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id }) };
+					this.settings.core.error.call(this, this._data.core.last_error);
+					return callback.call(this, false);
+				}
+				//return callback.call(this, (obj.id === $.jstree.root ? this._append_json_data(obj, t) : false) );
+			}
+			if(typeof s === 'string') {
+				if(obj.id === $.jstree.root) {
+					return this._append_html_data(obj, $($.parseHTML(s)).filter(function () { return this.nodeType !== 3; }), function (status) {
+						callback.call(this, status);
+					});
+				}
+				else {
+					this._data.core.last_error = { 'error' : 'nodata', 'plugin' : 'core', 'id' : 'core_06', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id }) };
+					this.settings.core.error.call(this, this._data.core.last_error);
+					return callback.call(this, false);
+				}
+				//return callback.call(this, (obj.id === $.jstree.root ? this._append_html_data(obj, $(s)) : false) );
+			}
+			return callback.call(this, false);
+		},
+		/**
+		 * adds a node to the list of nodes to redraw. Used only internally.
+		 * @private
+		 * @name _node_changed(obj [, callback])
+		 * @param  {mixed} obj
+		 */
+		_node_changed : function (obj) {
+			obj = this.get_node(obj);
+			if(obj) {
+				this._model.changed.push(obj.id);
+			}
+		},
+		/**
+		 * appends HTML content to the tree. Used internally.
+		 * @private
+		 * @name _append_html_data(obj, data)
+		 * @param  {mixed} obj the node to append to
+		 * @param  {String} data the HTML string to parse and append
+		 * @trigger model.jstree, changed.jstree
+		 */
+		_append_html_data : function (dom, data, cb) {
+			dom = this.get_node(dom);
+			dom.children = [];
+			dom.children_d = [];
+			var dat = data.is('ul') ? data.children() : data,
+				par = dom.id,
+				chd = [],
+				dpc = [],
+				m = this._model.data,
+				p = m[par],
+				s = this._data.core.selected.length,
+				tmp, i, j;
+			dat.each($.proxy(function (i, v) {
+				tmp = this._parse_model_from_html($(v), par, p.parents.concat());
+				if(tmp) {
+					chd.push(tmp);
+					dpc.push(tmp);
+					if(m[tmp].children_d.length) {
+						dpc = dpc.concat(m[tmp].children_d);
+					}
+				}
+			}, this));
+			p.children = chd;
+			p.children_d = dpc;
+			for(i = 0, j = p.parents.length; i < j; i++) {
+				m[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc);
+			}
+			/**
+			 * triggered when new data is inserted to the tree model
+			 * @event
+			 * @name model.jstree
+			 * @param {Array} nodes an array of node IDs
+			 * @param {String} parent the parent ID of the nodes
+			 */
+			this.trigger('model', { "nodes" : dpc, 'parent' : par });
+			if(par !== $.jstree.root) {
+				this._node_changed(par);
+				this.redraw();
+			}
+			else {
+				this.get_container_ul().children('.jstree-initial-node').remove();
+				this.redraw(true);
+			}
+			if(this._data.core.selected.length !== s) {
+				this.trigger('changed', { 'action' : 'model', 'selected' : this._data.core.selected });
+			}
+			cb.call(this, true);
+		},
+		/**
+		 * appends JSON content to the tree. Used internally.
+		 * @private
+		 * @name _append_json_data(obj, data)
+		 * @param  {mixed} obj the node to append to
+		 * @param  {String} data the JSON object to parse and append
+		 * @param  {Boolean} force_processing internal param - do not set
+		 * @trigger model.jstree, changed.jstree
+		 */
+		_append_json_data : function (dom, data, cb, force_processing) {
+			if(this.element === null) { return; }
+			dom = this.get_node(dom);
+			dom.children = [];
+			dom.children_d = [];
+			// *%$@!!!
+			if(data.d) {
+				data = data.d;
+				if(typeof data === "string") {
+					data = JSON.parse(data);
+				}
+			}
+			if(!$.isArray(data)) { data = [data]; }
+			var w = null,
+				args = {
+					'df'	: this._model.default_state,
+					'dat'	: data,
+					'par'	: dom.id,
+					'm'		: this._model.data,
+					't_id'	: this._id,
+					't_cnt'	: this._cnt,
+					'sel'	: this._data.core.selected
+				},
+				func = function (data, undefined) {
+					if(data.data) { data = data.data; }
+					var dat = data.dat,
+						par = data.par,
+						chd = [],
+						dpc = [],
+						add = [],
+						df = data.df,
+						t_id = data.t_id,
+						t_cnt = data.t_cnt,
+						m = data.m,
+						p = m[par],
+						sel = data.sel,
+						tmp, i, j, rslt,
+						parse_flat = function (d, p, ps) {
+							if(!ps) { ps = []; }
+							else { ps = ps.concat(); }
+							if(p) { ps.unshift(p); }
+							var tid = d.id.toString(),
+								i, j, c, e,
+								tmp = {
+									id			: tid,
+									text		: d.text || '',
+									icon		: d.icon !== undefined ? d.icon : true,
+									parent		: p,
+									parents		: ps,
+									children	: d.children || [],
+									children_d	: d.children_d || [],
+									data		: d.data,
+									state		: { },
+									li_attr		: { id : false },
+									a_attr		: { href : '#' },
+									original	: false
+								};
+							for(i in df) {
+								if(df.hasOwnProperty(i)) {
+									tmp.state[i] = df[i];
+								}
+							}
+							if(d && d.data && d.data.jstree && d.data.jstree.icon) {
+								tmp.icon = d.data.jstree.icon;
+							}
+							if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") {
+								tmp.icon = true;
+							}
+							if(d && d.data) {
+								tmp.data = d.data;
+								if(d.data.jstree) {
+									for(i in d.data.jstree) {
+										if(d.data.jstree.hasOwnProperty(i)) {
+											tmp.state[i] = d.data.jstree[i];
+										}
+									}
+								}
+							}
+							if(d && typeof d.state === 'object') {
+								for (i in d.state) {
+									if(d.state.hasOwnProperty(i)) {
+										tmp.state[i] = d.state[i];
+									}
+								}
+							}
+							if(d && typeof d.li_attr === 'object') {
+								for (i in d.li_attr) {
+									if(d.li_attr.hasOwnProperty(i)) {
+										tmp.li_attr[i] = d.li_attr[i];
+									}
+								}
+							}
+							if(!tmp.li_attr.id) {
+								tmp.li_attr.id = tid;
+							}
+							if(d && typeof d.a_attr === 'object') {
+								for (i in d.a_attr) {
+									if(d.a_attr.hasOwnProperty(i)) {
+										tmp.a_attr[i] = d.a_attr[i];
+									}
+								}
+							}
+							if(d && d.children && d.children === true) {
+								tmp.state.loaded = false;
+								tmp.children = [];
+								tmp.children_d = [];
+							}
+							m[tmp.id] = tmp;
+							for(i = 0, j = tmp.children.length; i < j; i++) {
+								c = parse_flat(m[tmp.children[i]], tmp.id, ps);
+								e = m[c];
+								tmp.children_d.push(c);
+								if(e.children_d.length) {
+									tmp.children_d = tmp.children_d.concat(e.children_d);
+								}
+							}
+							delete d.data;
+							delete d.children;
+							m[tmp.id].original = d;
+							if(tmp.state.selected) {
+								add.push(tmp.id);
+							}
+							return tmp.id;
+						},
+						parse_nest = function (d, p, ps) {
+							if(!ps) { ps = []; }
+							else { ps = ps.concat(); }
+							if(p) { ps.unshift(p); }
+							var tid = false, i, j, c, e, tmp;
+							do {
+								tid = 'j' + t_id + '_' + (++t_cnt);
+							} while(m[tid]);
+
+							tmp = {
+								id			: false,
+								text		: typeof d === 'string' ? d : '',
+								icon		: typeof d === 'object' && d.icon !== undefined ? d.icon : true,
+								parent		: p,
+								parents		: ps,
+								children	: [],
+								children_d	: [],
+								data		: null,
+								state		: { },
+								li_attr		: { id : false },
+								a_attr		: { href : '#' },
+								original	: false
+							};
+							for(i in df) {
+								if(df.hasOwnProperty(i)) {
+									tmp.state[i] = df[i];
+								}
+							}
+							if(d && d.id) { tmp.id = d.id.toString(); }
+							if(d && d.text) { tmp.text = d.text; }
+							if(d && d.data && d.data.jstree && d.data.jstree.icon) {
+								tmp.icon = d.data.jstree.icon;
+							}
+							if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") {
+								tmp.icon = true;
+							}
+							if(d && d.data) {
+								tmp.data = d.data;
+								if(d.data.jstree) {
+									for(i in d.data.jstree) {
+										if(d.data.jstree.hasOwnProperty(i)) {
+											tmp.state[i] = d.data.jstree[i];
+										}
+									}
+								}
+							}
+							if(d && typeof d.state === 'object') {
+								for (i in d.state) {
+									if(d.state.hasOwnProperty(i)) {
+										tmp.state[i] = d.state[i];
+									}
+								}
+							}
+							if(d && typeof d.li_attr === 'object') {
+								for (i in d.li_attr) {
+									if(d.li_attr.hasOwnProperty(i)) {
+										tmp.li_attr[i] = d.li_attr[i];
+									}
+								}
+							}
+							if(tmp.li_attr.id && !tmp.id) {
+								tmp.id = tmp.li_attr.id.toString();
+							}
+							if(!tmp.id) {
+								tmp.id = tid;
+							}
+							if(!tmp.li_attr.id) {
+								tmp.li_attr.id = tmp.id;
+							}
+							if(d && typeof d.a_attr === 'object') {
+								for (i in d.a_attr) {
+									if(d.a_attr.hasOwnProperty(i)) {
+										tmp.a_attr[i] = d.a_attr[i];
+									}
+								}
+							}
+							if(d && d.children && d.children.length) {
+								for(i = 0, j = d.children.length; i < j; i++) {
+									c = parse_nest(d.children[i], tmp.id, ps);
+									e = m[c];
+									tmp.children.push(c);
+									if(e.children_d.length) {
+										tmp.children_d = tmp.children_d.concat(e.children_d);
+									}
+								}
+								tmp.children_d = tmp.children_d.concat(tmp.children);
+							}
+							if(d && d.children && d.children === true) {
+								tmp.state.loaded = false;
+								tmp.children = [];
+								tmp.children_d = [];
+							}
+							delete d.data;
+							delete d.children;
+							tmp.original = d;
+							m[tmp.id] = tmp;
+							if(tmp.state.selected) {
+								add.push(tmp.id);
+							}
+							return tmp.id;
+						};
+
+					if(dat.length && dat[0].id !== undefined && dat[0].parent !== undefined) {
+						// Flat JSON support (for easy import from DB):
+						// 1) convert to object (foreach)
+						for(i = 0, j = dat.length; i < j; i++) {
+							if(!dat[i].children) {
+								dat[i].children = [];
+							}
+							m[dat[i].id.toString()] = dat[i];
+						}
+						// 2) populate children (foreach)
+						for(i = 0, j = dat.length; i < j; i++) {
+							m[dat[i].parent.toString()].children.push(dat[i].id.toString());
+							// populate parent.children_d
+							p.children_d.push(dat[i].id.toString());
+						}
+						// 3) normalize && populate parents and children_d with recursion
+						for(i = 0, j = p.children.length; i < j; i++) {
+							tmp = parse_flat(m[p.children[i]], par, p.parents.concat());
+							dpc.push(tmp);
+							if(m[tmp].children_d.length) {
+								dpc = dpc.concat(m[tmp].children_d);
+							}
+						}
+						for(i = 0, j = p.parents.length; i < j; i++) {
+							m[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc);
+						}
+						// ?) three_state selection - p.state.selected && t - (if three_state foreach(dat => ch) -> foreach(parents) if(parent.selected) child.selected = true;
+						rslt = {
+							'cnt' : t_cnt,
+							'mod' : m,
+							'sel' : sel,
+							'par' : par,
+							'dpc' : dpc,
+							'add' : add
+						};
+					}
+					else {
+						for(i = 0, j = dat.length; i < j; i++) {
+							tmp = parse_nest(dat[i], par, p.parents.concat());
+							if(tmp) {
+								chd.push(tmp);
+								dpc.push(tmp);
+								if(m[tmp].children_d.length) {
+									dpc = dpc.concat(m[tmp].children_d);
+								}
+							}
+						}
+						p.children = chd;
+						p.children_d = dpc;
+						for(i = 0, j = p.parents.length; i < j; i++) {
+							m[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc);
+						}
+						rslt = {
+							'cnt' : t_cnt,
+							'mod' : m,
+							'sel' : sel,
+							'par' : par,
+							'dpc' : dpc,
+							'add' : add
+						};
+					}
+					if(typeof window === 'undefined' || typeof window.document === 'undefined') {
+						postMessage(rslt);
+					}
+					else {
+						return rslt;
+					}
+				},
+				rslt = function (rslt, worker) {
+					if(this.element === null) { return; }
+					this._cnt = rslt.cnt;
+					this._model.data = rslt.mod; // breaks the reference in load_node - careful
+
+					if(worker) {
+						var i, j, a = rslt.add, r = rslt.sel, s = this._data.core.selected.slice(), m = this._model.data;
+						// if selection was changed while calculating in worker
+						if(r.length !== s.length || $.vakata.array_unique(r.concat(s)).length !== r.length) {
+							// deselect nodes that are no longer selected
+							for(i = 0, j = r.length; i < j; i++) {
+								if($.inArray(r[i], a) === -1 && $.inArray(r[i], s) === -1) {
+									m[r[i]].state.selected = false;
+								}
+							}
+							// select nodes that were selected in the mean time
+							for(i = 0, j = s.length; i < j; i++) {
+								if($.inArray(s[i], r) === -1) {
+									m[s[i]].state.selected = true;
+								}
+							}
+						}
+					}
+					if(rslt.add.length) {
+						this._data.core.selected = this._data.core.selected.concat(rslt.add);
+					}
+
+					this.trigger('model', { "nodes" : rslt.dpc, 'parent' : rslt.par });
+
+					if(rslt.par !== $.jstree.root) {
+						this._node_changed(rslt.par);
+						this.redraw();
+					}
+					else {
+						// this.get_container_ul().children('.jstree-initial-node').remove();
+						this.redraw(true);
+					}
+					if(rslt.add.length) {
+						this.trigger('changed', { 'action' : 'model', 'selected' : this._data.core.selected });
+					}
+					cb.call(this, true);
+				};
+			if(this.settings.core.worker && window.Blob && window.URL && window.Worker) {
+				try {
+					if(this._wrk === null) {
+						this._wrk = window.URL.createObjectURL(
+							new window.Blob(
+								['self.onmessage = ' + func.toString()],
+								{type:"text/javascript"}
+							)
+						);
+					}
+					if(!this._data.core.working || force_processing) {
+						this._data.core.working = true;
+						w = new window.Worker(this._wrk);
+						w.onmessage = $.proxy(function (e) {
+							rslt.call(this, e.data, true);
+							try { w.terminate(); w = null; } catch(ignore) { }
+							if(this._data.core.worker_queue.length) {
+								this._append_json_data.apply(this, this._data.core.worker_queue.shift());
+							}
+							else {
+								this._data.core.working = false;
+							}
+						}, this);
+						if(!args.par) {
+							if(this._data.core.worker_queue.length) {
+								this._append_json_data.apply(this, this._data.core.worker_queue.shift());
+							}
+							else {
+								this._data.core.working = false;
+							}
+						}
+						else {
+							w.postMessage(args);
+						}
+					}
+					else {
+						this._data.core.worker_queue.push([dom, data, cb, true]);
+					}
+				}
+				catch(e) {
+					rslt.call(this, func(args), false);
+					if(this._data.core.worker_queue.length) {
+						this._append_json_data.apply(this, this._data.core.worker_queue.shift());
+					}
+					else {
+						this._data.core.working = false;
+					}
+				}
+			}
+			else {
+				rslt.call(this, func(args), false);
+			}
+		},
+		/**
+		 * parses a node from a jQuery object and appends them to the in memory tree model. Used internally.
+		 * @private
+		 * @name _parse_model_from_html(d [, p, ps])
+		 * @param  {jQuery} d the jQuery object to parse
+		 * @param  {String} p the parent ID
+		 * @param  {Array} ps list of all parents
+		 * @return {String} the ID of the object added to the model
+		 */
+		_parse_model_from_html : function (d, p, ps) {
+			if(!ps) { ps = []; }
+			else { ps = [].concat(ps); }
+			if(p) { ps.unshift(p); }
+			var c, e, m = this._model.data,
+				data = {
+					id			: false,
+					text		: false,
+					icon		: true,
+					parent		: p,
+					parents		: ps,
+					children	: [],
+					children_d	: [],
+					data		: null,
+					state		: { },
+					li_attr		: { id : false },
+					a_attr		: { href : '#' },
+					original	: false
+				}, i, tmp, tid;
+			for(i in this._model.default_state) {
+				if(this._model.default_state.hasOwnProperty(i)) {
+					data.state[i] = this._model.default_state[i];
+				}
+			}
+			tmp = $.vakata.attributes(d, true);
+			$.each(tmp, function (i, v) {
+				v = $.trim(v);
+				if(!v.length) { return true; }
+				data.li_attr[i] = v;
+				if(i === 'id') {
+					data.id = v.toString();
+				}
+			});
+			tmp = d.children('a').first();
+			if(tmp.length) {
+				tmp = $.vakata.attributes(tmp, true);
+				$.each(tmp, function (i, v) {
+					v = $.trim(v);
+					if(v.length) {
+						data.a_attr[i] = v;
+					}
+				});
+			}
+			tmp = d.children("a").first().length ? d.children("a").first().clone() : d.clone();
+			tmp.children("ins, i, ul").remove();
+			tmp = tmp.html();
+			tmp = $('<div />').html(tmp);
+			data.text = this.settings.core.force_text ? tmp.text() : tmp.html();
+			tmp = d.data();
+			data.data = tmp ? $.extend(true, {}, tmp) : null;
+			data.state.opened = d.hasClass('jstree-open');
+			data.state.selected = d.children('a').hasClass('jstree-clicked');
+			data.state.disabled = d.children('a').hasClass('jstree-disabled');
+			if(data.data && data.data.jstree) {
+				for(i in data.data.jstree) {
+					if(data.data.jstree.hasOwnProperty(i)) {
+						data.state[i] = data.data.jstree[i];
+					}
+				}
+			}
+			tmp = d.children("a").children(".jstree-themeicon");
+			if(tmp.length) {
+				data.icon = tmp.hasClass('jstree-themeicon-hidden') ? false : tmp.attr('rel');
+			}
+			if(data.state.icon !== undefined) {
+				data.icon = data.state.icon;
+			}
+			if(data.icon === undefined || data.icon === null || data.icon === "") {
+				data.icon = true;
+			}
+			tmp = d.children("ul").children("li");
+			do {
+				tid = 'j' + this._id + '_' + (++this._cnt);
+			} while(m[tid]);
+			data.id = data.li_attr.id ? data.li_attr.id.toString() : tid;
+			if(tmp.length) {
+				tmp.each($.proxy(function (i, v) {
+					c = this._parse_model_from_html($(v), data.id, ps);
+					e = this._model.data[c];
+					data.children.push(c);
+					if(e.children_d.length) {
+						data.children_d = data.children_d.concat(e.children_d);
+					}
+				}, this));
+				data.children_d = data.children_d.concat(data.children);
+			}
+			else {
+				if(d.hasClass('jstree-closed')) {
+					data.state.loaded = false;
+				}
+			}
+			if(data.li_attr['class']) {
+				data.li_attr['class'] = data.li_attr['class'].replace('jstree-closed','').replace('jstree-open','');
+			}
+			if(data.a_attr['class']) {
+				data.a_attr['class'] = data.a_attr['class'].replace('jstree-clicked','').replace('jstree-disabled','');
+			}
+			m[data.id] = data;
+			if(data.state.selected) {
+				this._data.core.selected.push(data.id);
+			}
+			return data.id;
+		},
+		/**
+		 * parses a node from a JSON object (used when dealing with flat data, which has no nesting of children, but has id and parent properties) and appends it to the in memory tree model. Used internally.
+		 * @private
+		 * @name _parse_model_from_flat_json(d [, p, ps])
+		 * @param  {Object} d the JSON object to parse
+		 * @param  {String} p the parent ID
+		 * @param  {Array} ps list of all parents
+		 * @return {String} the ID of the object added to the model
+		 */
+		_parse_model_from_flat_json : function (d, p, ps) {
+			if(!ps) { ps = []; }
+			else { ps = ps.concat(); }
+			if(p) { ps.unshift(p); }
+			var tid = d.id.toString(),
+				m = this._model.data,
+				df = this._model.default_state,
+				i, j, c, e,
+				tmp = {
+					id			: tid,
+					text		: d.text || '',
+					icon		: d.icon !== undefined ? d.icon : true,
+					parent		: p,
+					parents		: ps,
+					children	: d.children || [],
+					children_d	: d.children_d || [],
+					data		: d.data,
+					state		: { },
+					li_attr		: { id : false },
+					a_attr		: { href : '#' },
+					original	: false
+				};
+			for(i in df) {
+				if(df.hasOwnProperty(i)) {
+					tmp.state[i] = df[i];
+				}
+			}
+			if(d && d.data && d.data.jstree && d.data.jstree.icon) {
+				tmp.icon = d.data.jstree.icon;
+			}
+			if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") {
+				tmp.icon = true;
+			}
+			if(d && d.data) {
+				tmp.data = d.data;
+				if(d.data.jstree) {
+					for(i in d.data.jstree) {
+						if(d.data.jstree.hasOwnProperty(i)) {
+							tmp.state[i] = d.data.jstree[i];
+						}
+					}
+				}
+			}
+			if(d && typeof d.state === 'object') {
+				for (i in d.state) {
+					if(d.state.hasOwnProperty(i)) {
+						tmp.state[i] = d.state[i];
+					}
+				}
+			}
+			if(d && typeof d.li_attr === 'object') {
+				for (i in d.li_attr) {
+					if(d.li_attr.hasOwnProperty(i)) {
+						tmp.li_attr[i] = d.li_attr[i];
+					}
+				}
+			}
+			if(!tmp.li_attr.id) {
+				tmp.li_attr.id = tid;
+			}
+			if(d && typeof d.a_attr === 'object') {
+				for (i in d.a_attr) {
+					if(d.a_attr.hasOwnProperty(i)) {
+						tmp.a_attr[i] = d.a_attr[i];
+					}
+				}
+			}
+			if(d && d.children && d.children === true) {
+				tmp.state.loaded = false;
+				tmp.children = [];
+				tmp.children_d = [];
+			}
+			m[tmp.id] = tmp;
+			for(i = 0, j = tmp.children.length; i < j; i++) {
+				c = this._parse_model_from_flat_json(m[tmp.children[i]], tmp.id, ps);
+				e = m[c];
+				tmp.children_d.push(c);
+				if(e.children_d.length) {
+					tmp.children_d = tmp.children_d.concat(e.children_d);
+				}
+			}
+			delete d.data;
+			delete d.children;
+			m[tmp.id].original = d;
+			if(tmp.state.selected) {
+				this._data.core.selected.push(tmp.id);
+			}
+			return tmp.id;
+		},
+		/**
+		 * parses a node from a JSON object and appends it to the in memory tree model. Used internally.
+		 * @private
+		 * @name _parse_model_from_json(d [, p, ps])
+		 * @param  {Object} d the JSON object to parse
+		 * @param  {String} p the parent ID
+		 * @param  {Array} ps list of all parents
+		 * @return {String} the ID of the object added to the model
+		 */
+		_parse_model_from_json : function (d, p, ps) {
+			if(!ps) { ps = []; }
+			else { ps = ps.concat(); }
+			if(p) { ps.unshift(p); }
+			var tid = false, i, j, c, e, m = this._model.data, df = this._model.default_state, tmp;
+			do {
+				tid = 'j' + this._id + '_' + (++this._cnt);
+			} while(m[tid]);
+
+			tmp = {
+				id			: false,
+				text		: typeof d === 'string' ? d : '',
+				icon		: typeof d === 'object' && d.icon !== undefined ? d.icon : true,
+				parent		: p,
+				parents		: ps,
+				children	: [],
+				children_d	: [],
+				data		: null,
+				state		: { },
+				li_attr		: { id : false },
+				a_attr		: { href : '#' },
+				original	: false
+			};
+			for(i in df) {
+				if(df.hasOwnProperty(i)) {
+					tmp.state[i] = df[i];
+				}
+			}
+			if(d && d.id) { tmp.id = d.id.toString(); }
+			if(d && d.text) { tmp.text = d.text; }
+			if(d && d.data && d.data.jstree && d.data.jstree.icon) {
+				tmp.icon = d.data.jstree.icon;
+			}
+			if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") {
+				tmp.icon = true;
+			}
+			if(d && d.data) {
+				tmp.data = d.data;
+				if(d.data.jstree) {
+					for(i in d.data.jstree) {
+						if(d.data.jstree.hasOwnProperty(i)) {
+							tmp.state[i] = d.data.jstree[i];
+						}
+					}
+				}
+			}
+			if(d && typeof d.state === 'object') {
+				for (i in d.state) {
+					if(d.state.hasOwnProperty(i)) {
+						tmp.state[i] = d.state[i];
+					}
+				}
+			}
+			if(d && typeof d.li_attr === 'object') {
+				for (i in d.li_attr) {
+					if(d.li_attr.hasOwnProperty(i)) {
+						tmp.li_attr[i] = d.li_attr[i];
+					}
+				}
+			}
+			if(tmp.li_attr.id && !tmp.id) {
+				tmp.id = tmp.li_attr.id.toString();
+			}
+			if(!tmp.id) {
+				tmp.id = tid;
+			}
+			if(!tmp.li_attr.id) {
+				tmp.li_attr.id = tmp.id;
+			}
+			if(d && typeof d.a_attr === 'object') {
+				for (i in d.a_attr) {
+					if(d.a_attr.hasOwnProperty(i)) {
+						tmp.a_attr[i] = d.a_attr[i];
+					}
+				}
+			}
+			if(d && d.children && d.children.length) {
+				for(i = 0, j = d.children.length; i < j; i++) {
+					c = this._parse_model_from_json(d.children[i], tmp.id, ps);
+					e = m[c];
+					tmp.children.push(c);
+					if(e.children_d.length) {
+						tmp.children_d = tmp.children_d.concat(e.children_d);
+					}
+				}
+				tmp.children_d = tmp.children_d.concat(tmp.children);
+			}
+			if(d && d.children && d.children === true) {
+				tmp.state.loaded = false;
+				tmp.children = [];
+				tmp.children_d = [];
+			}
+			delete d.data;
+			delete d.children;
+			tmp.original = d;
+			m[tmp.id] = tmp;
+			if(tmp.state.selected) {
+				this._data.core.selected.push(tmp.id);
+			}
+			return tmp.id;
+		},
+		/**
+		 * redraws all nodes that need to be redrawn. Used internally.
+		 * @private
+		 * @name _redraw()
+		 * @trigger redraw.jstree
+		 */
+		_redraw : function () {
+			var nodes = this._model.force_full_redraw ? this._model.data[$.jstree.root].children.concat([]) : this._model.changed.concat([]),
+				f = document.createElement('UL'), tmp, i, j, fe = this._data.core.focused;
+			for(i = 0, j = nodes.length; i < j; i++) {
+				tmp = this.redraw_node(nodes[i], true, this._model.force_full_redraw);
+				if(tmp && this._model.force_full_redraw) {
+					f.appendChild(tmp);
+				}
+			}
+			if(this._model.force_full_redraw) {
+				f.className = this.get_container_ul()[0].className;
+				f.setAttribute('role','group');
+				this.element.empty().append(f);
+				//this.get_container_ul()[0].appendChild(f);
+			}
+			if(fe !== null) {
+				tmp = this.get_node(fe, true);
+				if(tmp && tmp.length && tmp.children('.jstree-anchor')[0] !== document.activeElement) {
+					tmp.children('.jstree-anchor').focus();
+				}
+				else {
+					this._data.core.focused = null;
+				}
+			}
+			this._model.force_full_redraw = false;
+			this._model.changed = [];
+			/**
+			 * triggered after nodes are redrawn
+			 * @event
+			 * @name redraw.jstree
+			 * @param {array} nodes the redrawn nodes
+			 */
+			this.trigger('redraw', { "nodes" : nodes });
+		},
+		/**
+		 * redraws all nodes that need to be redrawn or optionally - the whole tree
+		 * @name redraw([full])
+		 * @param {Boolean} full if set to `true` all nodes are redrawn.
+		 */
+		redraw : function (full) {
+			if(full) {
+				this._model.force_full_redraw = true;
+			}
+			//if(this._model.redraw_timeout) {
+			//	clearTimeout(this._model.redraw_timeout);
+			//}
+			//this._model.redraw_timeout = setTimeout($.proxy(this._redraw, this),0);
+			this._redraw();
+		},
+		/**
+		 * redraws a single node's children. Used internally.
+		 * @private
+		 * @name draw_children(node)
+		 * @param {mixed} node the node whose children will be redrawn
+		 */
+		draw_children : function (node) {
+			var obj = this.get_node(node),
+				i = false,
+				j = false,
+				k = false,
+				d = document;
+			if(!obj) { return false; }
+			if(obj.id === $.jstree.root) { return this.redraw(true); }
+			node = this.get_node(node, true);
+			if(!node || !node.length) { return false; } // TODO: quick toggle
+
+			node.children('.jstree-children').remove();
+			node = node[0];
+			if(obj.children.length && obj.state.loaded) {
+				k = d.createElement('UL');
+				k.setAttribute('role', 'group');
+				k.className = 'jstree-children';
+				for(i = 0, j = obj.children.length; i < j; i++) {
+					k.appendChild(this.redraw_node(obj.children[i], true, true));
+				}
+				node.appendChild(k);
+			}
+		},
+		/**
+		 * redraws a single node. Used internally.
+		 * @private
+		 * @name redraw_node(node, deep, is_callback, force_render)
+		 * @param {mixed} node the node to redraw
+		 * @param {Boolean} deep should child nodes be redrawn too
+		 * @param {Boolean} is_callback is this a recursion call
+		 * @param {Boolean} force_render should children of closed parents be drawn anyway
+		 */
+		redraw_node : function (node, deep, is_callback, force_render) {
+			var obj = this.get_node(node),
+				par = false,
+				ind = false,
+				old = false,
+				i = false,
+				j = false,
+				k = false,
+				c = '',
+				d = document,
+				m = this._model.data,
+				f = false,
+				s = false,
+				tmp = null,
+				t = 0,
+				l = 0,
+				has_children = false,
+				last_sibling = false;
+			if(!obj) { return false; }
+			if(obj.id === $.jstree.root) {  return this.redraw(true); }
+			deep = deep || obj.children.length === 0;
+			node = !document.querySelector ? document.getElementById(obj.id) : this.element[0].querySelector('#' + ("0123456789".indexOf(obj.id[0]) !== -1 ? '\\3' + obj.id[0] + ' ' + obj.id.substr(1).replace($.jstree.idregex,'\\$&') : obj.id.replace($.jstree.idregex,'\\$&')) ); //, this.element);
+			if(!node) {
+				deep = true;
+				//node = d.createElement('LI');
+				if(!is_callback) {
+					par = obj.parent !== $.jstree.root ? $('#' + obj.parent.replace($.jstree.idregex,'\\$&'), this.element)[0] : null;
+					if(par !== null && (!par || !m[obj.parent].state.opened)) {
+						return false;
+					}
+					ind = $.inArray(obj.id, par === null ? m[$.jstree.root].children : m[obj.parent].children);
+				}
+			}
+			else {
+				node = $(node);
+				if(!is_callback) {
+					par = node.parent().parent()[0];
+					if(par === this.element[0]) {
+						par = null;
+					}
+					ind = node.index();
+				}
+				// m[obj.id].data = node.data(); // use only node's data, no need to touch jquery storage
+				if(!deep && obj.children.length && !node.children('.jstree-children').length) {
+					deep = true;
+				}
+				if(!deep) {
+					old = node.children('.jstree-children')[0];
+				}
+				f = node.children('.jstree-anchor')[0] === document.activeElement;
+				node.remove();
+				//node = d.createElement('LI');
+				//node = node[0];
+			}
+			node = _node.cloneNode(true);
+			// node is DOM, deep is boolean
+
+			c = 'jstree-node ';
+			for(i in obj.li_attr) {
+				if(obj.li_attr.hasOwnProperty(i)) {
+					if(i === 'id') { continue; }
+					if(i !== 'class') {
+						node.setAttribute(i, obj.li_attr[i]);
+					}
+					else {
+						c += obj.li_attr[i];
+					}
+				}
+			}
+			if(!obj.a_attr.id) {
+				obj.a_attr.id = obj.id + '_anchor';
+			}
+			node.setAttribute('aria-selected', !!obj.state.selected);
+			node.setAttribute('aria-level', obj.parents.length);
+			node.setAttribute('aria-labelledby', obj.a_attr.id);
+			if(obj.state.disabled) {
+				node.setAttribute('aria-disabled', true);
+			}
+
+			for(i = 0, j = obj.children.length; i < j; i++) {
+				if(!m[obj.children[i]].state.hidden) {
+					has_children = true;
+					break;
+				}
+			}
+			if(obj.parent !== null && m[obj.parent] && !obj.state.hidden) {
+				i = $.inArray(obj.id, m[obj.parent].children);
+				last_sibling = obj.id;
+				if(i !== -1) {
+					i++;
+					for(j = m[obj.parent].children.length; i < j; i++) {
+						if(!m[m[obj.parent].children[i]].state.hidden) {
+							last_sibling = m[obj.parent].children[i];
+						}
+						if(last_sibling !== obj.id) {
+							break;
+						}
+					}
+				}
+			}
+
+			if(obj.state.hidden) {
+				c += ' jstree-hidden';
+			}
+			if(obj.state.loaded && !has_children) {
+				c += ' jstree-leaf';
+			}
+			else {
+				c += obj.state.opened && obj.state.loaded ? ' jstree-open' : ' jstree-closed';
+				node.setAttribute('aria-expanded', (obj.state.opened && obj.state.loaded) );
+			}
+			if(last_sibling === obj.id) {
+				c += ' jstree-last';
+			}
+			node.id = obj.id;
+			node.className = c;
+			c = ( obj.state.selected ? ' jstree-clicked' : '') + ( obj.state.disabled ? ' jstree-disabled' : '');
+			for(j in obj.a_attr) {
+				if(obj.a_attr.hasOwnProperty(j)) {
+					if(j === 'href' && obj.a_attr[j] === '#') { continue; }
+					if(j !== 'class') {
+						node.childNodes[1].setAttribute(j, obj.a_attr[j]);
+					}
+					else {
+						c += ' ' + obj.a_attr[j];
+					}
+				}
+			}
+			if(c.length) {
+				node.childNodes[1].className = 'jstree-anchor ' + c;
+			}
+			if((obj.icon && obj.icon !== true) || obj.icon === false) {
+				if(obj.icon === false) {
+					node.childNodes[1].childNodes[0].className += ' jstree-themeicon-hidden';
+				}
+				else if(obj.icon.indexOf('/') === -1 && obj.icon.indexOf('.') === -1) {
+					node.childNodes[1].childNodes[0].className += ' ' + obj.icon + ' jstree-themeicon-custom';
+				}
+				else {
+					node.childNodes[1].childNodes[0].style.backgroundImage = 'url('+obj.icon+')';
+					node.childNodes[1].childNodes[0].style.backgroundPosition = 'center center';
+					node.childNodes[1].childNodes[0].style.backgroundSize = 'auto';
+					node.childNodes[1].childNodes[0].className += ' jstree-themeicon-custom';
+				}
+			}
+
+			if(this.settings.core.force_text) {
+				node.childNodes[1].appendChild(d.createTextNode(obj.text));
+			}
+			else {
+				node.childNodes[1].innerHTML += obj.text;
+			}
+
+
+			if(deep && obj.children.length && (obj.state.opened || force_render) && obj.state.loaded) {
+				k = d.createElement('UL');
+				k.setAttribute('role', 'group');
+				k.className = 'jstree-children';
+				for(i = 0, j = obj.children.length; i < j; i++) {
+					k.appendChild(this.redraw_node(obj.children[i], deep, true));
+				}
+				node.appendChild(k);
+			}
+			if(old) {
+				node.appendChild(old);
+			}
+			if(!is_callback) {
+				// append back using par / ind
+				if(!par) {
+					par = this.element[0];
+				}
+				for(i = 0, j = par.childNodes.length; i < j; i++) {
+					if(par.childNodes[i] && par.childNodes[i].className && par.childNodes[i].className.indexOf('jstree-children') !== -1) {
+						tmp = par.childNodes[i];
+						break;
+					}
+				}
+				if(!tmp) {
+					tmp = d.createElement('UL');
+					tmp.setAttribute('role', 'group');
+					tmp.className = 'jstree-children';
+					par.appendChild(tmp);
+				}
+				par = tmp;
+
+				if(ind < par.childNodes.length) {
+					par.insertBefore(node, par.childNodes[ind]);
+				}
+				else {
+					par.appendChild(node);
+				}
+				if(f) {
+					t = this.element[0].scrollTop;
+					l = this.element[0].scrollLeft;
+					node.childNodes[1].focus();
+					this.element[0].scrollTop = t;
+					this.element[0].scrollLeft = l;
+				}
+			}
+			if(obj.state.opened && !obj.state.loaded) {
+				obj.state.opened = false;
+				setTimeout($.proxy(function () {
+					this.open_node(obj.id, false, 0);
+				}, this), 0);
+			}
+			return node;
+		},
+		/**
+		 * opens a node, revaling its children. If the node is not loaded it will be loaded and opened once ready.
+		 * @name open_node(obj [, callback, animation])
+		 * @param {mixed} obj the node to open
+		 * @param {Function} callback a function to execute once the node is opened
+		 * @param {Number} animation the animation duration in milliseconds when opening the node (overrides the `core.animation` setting). Use `false` for no animation.
+		 * @trigger open_node.jstree, after_open.jstree, before_open.jstree
+		 */
+		open_node : function (obj, callback, animation) {
+			var t1, t2, d, t;
+			if($.isArray(obj)) {
+				obj = obj.slice();
+				for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+					this.open_node(obj[t1], callback, animation);
+				}
+				return true;
+			}
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) {
+				return false;
+			}
+			animation = animation === undefined ? this.settings.core.animation : animation;
+			if(!this.is_closed(obj)) {
+				if(callback) {
+					callback.call(this, obj, false);
+				}
+				return false;
+			}
+			if(!this.is_loaded(obj)) {
+				if(this.is_loading(obj)) {
+					return setTimeout($.proxy(function () {
+						this.open_node(obj, callback, animation);
+					}, this), 500);
+				}
+				this.load_node(obj, function (o, ok) {
+					return ok ? this.open_node(o, callback, animation) : (callback ? callback.call(this, o, false) : false);
+				});
+			}
+			else {
+				d = this.get_node(obj, true);
+				t = this;
+				if(d.length) {
+					if(animation && d.children(".jstree-children").length) {
+						d.children(".jstree-children").stop(true, true);
+					}
+					if(obj.children.length && !this._firstChild(d.children('.jstree-children')[0])) {
+						this.draw_children(obj);
+						//d = this.get_node(obj, true);
+					}
+					if(!animation) {
+						this.trigger('before_open', { "node" : obj });
+						d[0].className = d[0].className.replace('jstree-closed', 'jstree-open');
+						d[0].setAttribute("aria-expanded", true);
+					}
+					else {
+						this.trigger('before_open', { "node" : obj });
+						d
+							.children(".jstree-children").css("display","none").end()
+							.removeClass("jstree-closed").addClass("jstree-open").attr("aria-expanded", true)
+							.children(".jstree-children").stop(true, true)
+								.slideDown(animation, function () {
+									this.style.display = "";
+									t.trigger("after_open", { "node" : obj });
+								});
+					}
+				}
+				obj.state.opened = true;
+				if(callback) {
+					callback.call(this, obj, true);
+				}
+				if(!d.length) {
+					/**
+					 * triggered when a node is about to be opened (if the node is supposed to be in the DOM, it will be, but it won't be visible yet)
+					 * @event
+					 * @name before_open.jstree
+					 * @param {Object} node the opened node
+					 */
+					this.trigger('before_open', { "node" : obj });
+				}
+				/**
+				 * triggered when a node is opened (if there is an animation it will not be completed yet)
+				 * @event
+				 * @name open_node.jstree
+				 * @param {Object} node the opened node
+				 */
+				this.trigger('open_node', { "node" : obj });
+				if(!animation || !d.length) {
+					/**
+					 * triggered when a node is opened and the animation is complete
+					 * @event
+					 * @name after_open.jstree
+					 * @param {Object} node the opened node
+					 */
+					this.trigger("after_open", { "node" : obj });
+				}
+				return true;
+			}
+		},
+		/**
+		 * opens every parent of a node (node should be loaded)
+		 * @name _open_to(obj)
+		 * @param {mixed} obj the node to reveal
+		 * @private
+		 */
+		_open_to : function (obj) {
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) {
+				return false;
+			}
+			var i, j, p = obj.parents;
+			for(i = 0, j = p.length; i < j; i+=1) {
+				if(i !== $.jstree.root) {
+					this.open_node(p[i], false, 0);
+				}
+			}
+			return $('#' + obj.id.replace($.jstree.idregex,'\\$&'), this.element);
+		},
+		/**
+		 * closes a node, hiding its children
+		 * @name close_node(obj [, animation])
+		 * @param {mixed} obj the node to close
+		 * @param {Number} animation the animation duration in milliseconds when closing the node (overrides the `core.animation` setting). Use `false` for no animation.
+		 * @trigger close_node.jstree, after_close.jstree
+		 */
+		close_node : function (obj, animation) {
+			var t1, t2, t, d;
+			if($.isArray(obj)) {
+				obj = obj.slice();
+				for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+					this.close_node(obj[t1], animation);
+				}
+				return true;
+			}
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) {
+				return false;
+			}
+			if(this.is_closed(obj)) {
+				return false;
+			}
+			animation = animation === undefined ? this.settings.core.animation : animation;
+			t = this;
+			d = this.get_node(obj, true);
+			if(d.length) {
+				if(!animation) {
+					d[0].className = d[0].className.replace('jstree-open', 'jstree-closed');
+					d.attr("aria-expanded", false).children('.jstree-children').remove();
+				}
+				else {
+					d
+						.children(".jstree-children").attr("style","display:block !important").end()
+						.removeClass("jstree-open").addClass("jstree-closed").attr("aria-expanded", false)
+						.children(".jstree-children").stop(true, true).slideUp(animation, function () {
+							this.style.display = "";
+							d.children('.jstree-children').remove();
+							t.trigger("after_close", { "node" : obj });
+						});
+				}
+			}
+			obj.state.opened = false;
+			/**
+			 * triggered when a node is closed (if there is an animation it will not be complete yet)
+			 * @event
+			 * @name close_node.jstree
+			 * @param {Object} node the closed node
+			 */
+			this.trigger('close_node',{ "node" : obj });
+			if(!animation || !d.length) {
+				/**
+				 * triggered when a node is closed and the animation is complete
+				 * @event
+				 * @name after_close.jstree
+				 * @param {Object} node the closed node
+				 */
+				this.trigger("after_close", { "node" : obj });
+			}
+		},
+		/**
+		 * toggles a node - closing it if it is open, opening it if it is closed
+		 * @name toggle_node(obj)
+		 * @param {mixed} obj the node to toggle
+		 */
+		toggle_node : function (obj) {
+			var t1, t2;
+			if($.isArray(obj)) {
+				obj = obj.slice();
+				for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+					this.toggle_node(obj[t1]);
+				}
+				return true;
+			}
+			if(this.is_closed(obj)) {
+				return this.open_node(obj);
+			}
+			if(this.is_open(obj)) {
+				return this.close_node(obj);
+			}
+		},
+		/**
+		 * opens all nodes within a node (or the tree), revaling their children. If the node is not loaded it will be loaded and opened once ready.
+		 * @name open_all([obj, animation, original_obj])
+		 * @param {mixed} obj the node to open recursively, omit to open all nodes in the tree
+		 * @param {Number} animation the animation duration in milliseconds when opening the nodes, the default is no animation
+		 * @param {jQuery} reference to the node that started the process (internal use)
+		 * @trigger open_all.jstree
+		 */
+		open_all : function (obj, animation, original_obj) {
+			if(!obj) { obj = $.jstree.root; }
+			obj = this.get_node(obj);
+			if(!obj) { return false; }
+			var dom = obj.id === $.jstree.root ? this.get_container_ul() : this.get_node(obj, true), i, j, _this;
+			if(!dom.length) {
+				for(i = 0, j = obj.children_d.length; i < j; i++) {
+					if(this.is_closed(this._model.data[obj.children_d[i]])) {
+						this._model.data[obj.children_d[i]].state.opened = true;
+					}
+				}
+				return this.trigger('open_all', { "node" : obj });
+			}
+			original_obj = original_obj || dom;
+			_this = this;
+			dom = this.is_closed(obj) ? dom.find('.jstree-closed').addBack() : dom.find('.jstree-closed');
+			dom.each(function () {
+				_this.open_node(
+					this,
+					function(node, status) { if(status && this.is_parent(node)) { this.open_all(node, animation, original_obj); } },
+					animation || 0
+				);
+			});
+			if(original_obj.find('.jstree-closed').length === 0) {
+				/**
+				 * triggered when an `open_all` call completes
+				 * @event
+				 * @name open_all.jstree
+				 * @param {Object} node the opened node
+				 */
+				this.trigger('open_all', { "node" : this.get_node(original_obj) });
+			}
+		},
+		/**
+		 * closes all nodes within a node (or the tree), revaling their children
+		 * @name close_all([obj, animation])
+		 * @param {mixed} obj the node to close recursively, omit to close all nodes in the tree
+		 * @param {Number} animation the animation duration in milliseconds when closing the nodes, the default is no animation
+		 * @trigger close_all.jstree
+		 */
+		close_all : function (obj, animation) {
+			if(!obj) { obj = $.jstree.root; }
+			obj = this.get_node(obj);
+			if(!obj) { return false; }
+			var dom = obj.id === $.jstree.root ? this.get_container_ul() : this.get_node(obj, true),
+				_this = this, i, j;
+			if(dom.length) {
+				dom = this.is_open(obj) ? dom.find('.jstree-open').addBack() : dom.find('.jstree-open');
+				$(dom.get().reverse()).each(function () { _this.close_node(this, animation || 0); });
+			}
+			for(i = 0, j = obj.children_d.length; i < j; i++) {
+				this._model.data[obj.children_d[i]].state.opened = false;
+			}
+			/**
+			 * triggered when an `close_all` call completes
+			 * @event
+			 * @name close_all.jstree
+			 * @param {Object} node the closed node
+			 */
+			this.trigger('close_all', { "node" : obj });
+		},
+		/**
+		 * checks if a node is disabled (not selectable)
+		 * @name is_disabled(obj)
+		 * @param  {mixed} obj
+		 * @return {Boolean}
+		 */
+		is_disabled : function (obj) {
+			obj = this.get_node(obj);
+			return obj && obj.state && obj.state.disabled;
+		},
+		/**
+		 * enables a node - so that it can be selected
+		 * @name enable_node(obj)
+		 * @param {mixed} obj the node to enable
+		 * @trigger enable_node.jstree
+		 */
+		enable_node : function (obj) {
+			var t1, t2;
+			if($.isArray(obj)) {
+				obj = obj.slice();
+				for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+					this.enable_node(obj[t1]);
+				}
+				return true;
+			}
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) {
+				return false;
+			}
+			obj.state.disabled = false;
+			this.get_node(obj,true).children('.jstree-anchor').removeClass('jstree-disabled').attr('aria-disabled', false);
+			/**
+			 * triggered when an node is enabled
+			 * @event
+			 * @name enable_node.jstree
+			 * @param {Object} node the enabled node
+			 */
+			this.trigger('enable_node', { 'node' : obj });
+		},
+		/**
+		 * disables a node - so that it can not be selected
+		 * @name disable_node(obj)
+		 * @param {mixed} obj the node to disable
+		 * @trigger disable_node.jstree
+		 */
+		disable_node : function (obj) {
+			var t1, t2;
+			if($.isArray(obj)) {
+				obj = obj.slice();
+				for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+					this.disable_node(obj[t1]);
+				}
+				return true;
+			}
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) {
+				return false;
+			}
+			obj.state.disabled = true;
+			this.get_node(obj,true).children('.jstree-anchor').addClass('jstree-disabled').attr('aria-disabled', true);
+			/**
+			 * triggered when an node is disabled
+			 * @event
+			 * @name disable_node.jstree
+			 * @param {Object} node the disabled node
+			 */
+			this.trigger('disable_node', { 'node' : obj });
+		},
+		/**
+		 * hides a node - it is still in the structure but will not be visible
+		 * @name hide_node(obj)
+		 * @param {mixed} obj the node to hide
+		 * @param {Boolean} redraw internal parameter controlling if redraw is called
+		 * @trigger hide_node.jstree
+		 */
+		hide_node : function (obj, skip_redraw) {
+			var t1, t2;
+			if($.isArray(obj)) {
+				obj = obj.slice();
+				for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+					this.hide_node(obj[t1], true);
+				}
+				this.redraw();
+				return true;
+			}
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) {
+				return false;
+			}
+			if(!obj.state.hidden) {
+				obj.state.hidden = true;
+				this._node_changed(obj.parent);
+				if(!skip_redraw) {
+					this.redraw();
+				}
+				/**
+				 * triggered when an node is hidden
+				 * @event
+				 * @name hide_node.jstree
+				 * @param {Object} node the hidden node
+				 */
+				this.trigger('hide_node', { 'node' : obj });
+			}
+		},
+		/**
+		 * shows a node
+		 * @name show_node(obj)
+		 * @param {mixed} obj the node to show
+		 * @param {Boolean} skip_redraw internal parameter controlling if redraw is called
+		 * @trigger show_node.jstree
+		 */
+		show_node : function (obj, skip_redraw) {
+			var t1, t2;
+			if($.isArray(obj)) {
+				obj = obj.slice();
+				for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+					this.show_node(obj[t1], true);
+				}
+				this.redraw();
+				return true;
+			}
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) {
+				return false;
+			}
+			if(obj.state.hidden) {
+				obj.state.hidden = false;
+				this._node_changed(obj.parent);
+				if(!skip_redraw) {
+					this.redraw();
+				}
+				/**
+				 * triggered when an node is shown
+				 * @event
+				 * @name show_node.jstree
+				 * @param {Object} node the shown node
+				 */
+				this.trigger('show_node', { 'node' : obj });
+			}
+		},
+		/**
+		 * hides all nodes
+		 * @name hide_all()
+		 * @trigger hide_all.jstree
+		 */
+		hide_all : function (skip_redraw) {
+			var i, m = this._model.data, ids = [];
+			for(i in m) {
+				if(m.hasOwnProperty(i) && i !== $.jstree.root && !m[i].state.hidden) {
+					m[i].state.hidden = true;
+					ids.push(i);
+				}
+			}
+			this._model.force_full_redraw = true;
+			if(!skip_redraw) {
+				this.redraw();
+			}
+			/**
+			 * triggered when all nodes are hidden
+			 * @event
+			 * @name hide_all.jstree
+			 * @param {Array} nodes the IDs of all hidden nodes
+			 */
+			this.trigger('hide_all', { 'nodes' : ids });
+			return ids;
+		},
+		/**
+		 * shows all nodes
+		 * @name show_all()
+		 * @trigger show_all.jstree
+		 */
+		show_all : function (skip_redraw) {
+			var i, m = this._model.data, ids = [];
+			for(i in m) {
+				if(m.hasOwnProperty(i) && i !== $.jstree.root && m[i].state.hidden) {
+					m[i].state.hidden = false;
+					ids.push(i);
+				}
+			}
+			this._model.force_full_redraw = true;
+			if(!skip_redraw) {
+				this.redraw();
+			}
+			/**
+			 * triggered when all nodes are shown
+			 * @event
+			 * @name show_all.jstree
+			 * @param {Array} nodes the IDs of all shown nodes
+			 */
+			this.trigger('show_all', { 'nodes' : ids });
+			return ids;
+		},
+		/**
+		 * called when a node is selected by the user. Used internally.
+		 * @private
+		 * @name activate_node(obj, e)
+		 * @param {mixed} obj the node
+		 * @param {Object} e the related event
+		 * @trigger activate_node.jstree, changed.jstree
+		 */
+		activate_node : function (obj, e) {
+			if(this.is_disabled(obj)) {
+				return false;
+			}
+			if(!e || typeof e !== 'object') {
+				e = {};
+			}
+
+			// ensure last_clicked is still in the DOM, make it fresh (maybe it was moved?) and make sure it is still selected, if not - make last_clicked the last selected node
+			this._data.core.last_clicked = this._data.core.last_clicked && this._data.core.last_clicked.id !== undefined ? this.get_node(this._data.core.last_clicked.id) : null;
+			if(this._data.core.last_clicked && !this._data.core.last_clicked.state.selected) { this._data.core.last_clicked = null; }
+			if(!this._data.core.last_clicked && this._data.core.selected.length) { this._data.core.last_clicked = this.get_node(this._data.core.selected[this._data.core.selected.length - 1]); }
+
+			if(!this.settings.core.multiple || (!e.metaKey && !e.ctrlKey && !e.shiftKey) || (e.shiftKey && (!this._data.core.last_clicked || !this.get_parent(obj) || this.get_parent(obj) !== this._data.core.last_clicked.parent ) )) {
+				if(!this.settings.core.multiple && (e.metaKey || e.ctrlKey || e.shiftKey) && this.is_selected(obj)) {
+					this.deselect_node(obj, false, e);
+				}
+				else {
+					this.deselect_all(true);
+					this.select_node(obj, false, false, e);
+					this._data.core.last_clicked = this.get_node(obj);
+				}
+			}
+			else {
+				if(e.shiftKey) {
+					var o = this.get_node(obj).id,
+						l = this._data.core.last_clicked.id,
+						p = this.get_node(this._data.core.last_clicked.parent).children,
+						c = false,
+						i, j;
+					for(i = 0, j = p.length; i < j; i += 1) {
+						// separate IFs work whem o and l are the same
+						if(p[i] === o) {
+							c = !c;
+						}
+						if(p[i] === l) {
+							c = !c;
+						}
+						if(!this.is_disabled(p[i]) && (c || p[i] === o || p[i] === l)) {
+							this.select_node(p[i], true, false, e);
+						}
+						else {
+							this.deselect_node(p[i], true, e);
+						}
+					}
+					this.trigger('changed', { 'action' : 'select_node', 'node' : this.get_node(obj), 'selected' : this._data.core.selected, 'event' : e });
+				}
+				else {
+					if(!this.is_selected(obj)) {
+						this.select_node(obj, false, false, e);
+					}
+					else {
+						this.deselect_node(obj, false, e);
+					}
+				}
+			}
+			/**
+			 * triggered when an node is clicked or intercated with by the user
+			 * @event
+			 * @name activate_node.jstree
+			 * @param {Object} node
+			 * @param {Object} event the ooriginal event (if any) which triggered the call (may be an empty object)
+			 */
+			this.trigger('activate_node', { 'node' : this.get_node(obj), 'event' : e });
+		},
+		/**
+		 * applies the hover state on a node, called when a node is hovered by the user. Used internally.
+		 * @private
+		 * @name hover_node(obj)
+		 * @param {mixed} obj
+		 * @trigger hover_node.jstree
+		 */
+		hover_node : function (obj) {
+			obj = this.get_node(obj, true);
+			if(!obj || !obj.length || obj.children('.jstree-hovered').length) {
+				return false;
+			}
+			var o = this.element.find('.jstree-hovered'), t = this.element;
+			if(o && o.length) { this.dehover_node(o); }
+
+			obj.children('.jstree-anchor').addClass('jstree-hovered');
+			/**
+			 * triggered when an node is hovered
+			 * @event
+			 * @name hover_node.jstree
+			 * @param {Object} node
+			 */
+			this.trigger('hover_node', { 'node' : this.get_node(obj) });
+			setTimeout(function () { t.attr('aria-activedescendant', obj[0].id); }, 0);
+		},
+		/**
+		 * removes the hover state from a nodecalled when a node is no longer hovered by the user. Used internally.
+		 * @private
+		 * @name dehover_node(obj)
+		 * @param {mixed} obj
+		 * @trigger dehover_node.jstree
+		 */
+		dehover_node : function (obj) {
+			obj = this.get_node(obj, true);
+			if(!obj || !obj.length || !obj.children('.jstree-hovered').length) {
+				return false;
+			}
+			obj.children('.jstree-anchor').removeClass('jstree-hovered');
+			/**
+			 * triggered when an node is no longer hovered
+			 * @event
+			 * @name dehover_node.jstree
+			 * @param {Object} node
+			 */
+			this.trigger('dehover_node', { 'node' : this.get_node(obj) });
+		},
+		/**
+		 * select a node
+		 * @name select_node(obj [, supress_event, prevent_open])
+		 * @param {mixed} obj an array can be used to select multiple nodes
+		 * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered
+		 * @param {Boolean} prevent_open if set to `true` parents of the selected node won't be opened
+		 * @trigger select_node.jstree, changed.jstree
+		 */
+		select_node : function (obj, supress_event, prevent_open, e) {
+			var dom, t1, t2, th;
+			if($.isArray(obj)) {
+				obj = obj.slice();
+				for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+					this.select_node(obj[t1], supress_event, prevent_open, e);
+				}
+				return true;
+			}
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) {
+				return false;
+			}
+			dom = this.get_node(obj, true);
+			if(!obj.state.selected) {
+				obj.state.selected = true;
+				this._data.core.selected.push(obj.id);
+				if(!prevent_open) {
+					dom = this._open_to(obj);
+				}
+				if(dom && dom.length) {
+					dom.attr('aria-selected', true).children('.jstree-anchor').addClass('jstree-clicked');
+				}
+				/**
+				 * triggered when an node is selected
+				 * @event
+				 * @name select_node.jstree
+				 * @param {Object} node
+				 * @param {Array} selected the current selection
+				 * @param {Object} event the event (if any) that triggered this select_node
+				 */
+				this.trigger('select_node', { 'node' : obj, 'selected' : this._data.core.selected, 'event' : e });
+				if(!supress_event) {
+					/**
+					 * triggered when selection changes
+					 * @event
+					 * @name changed.jstree
+					 * @param {Object} node
+					 * @param {Object} action the action that caused the selection to change
+					 * @param {Array} selected the current selection
+					 * @param {Object} event the event (if any) that triggered this changed event
+					 */
+					this.trigger('changed', { 'action' : 'select_node', 'node' : obj, 'selected' : this._data.core.selected, 'event' : e });
+				}
+			}
+		},
+		/**
+		 * deselect a node
+		 * @name deselect_node(obj [, supress_event])
+		 * @param {mixed} obj an array can be used to deselect multiple nodes
+		 * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered
+		 * @trigger deselect_node.jstree, changed.jstree
+		 */
+		deselect_node : function (obj, supress_event, e) {
+			var t1, t2, dom;
+			if($.isArray(obj)) {
+				obj = obj.slice();
+				for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+					this.deselect_node(obj[t1], supress_event, e);
+				}
+				return true;
+			}
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) {
+				return false;
+			}
+			dom = this.get_node(obj, true);
+			if(obj.state.selected) {
+				obj.state.selected = false;
+				this._data.core.selected = $.vakata.array_remove_item(this._data.core.selected, obj.id);
+				if(dom.length) {
+					dom.attr('aria-selected', false).children('.jstree-anchor').removeClass('jstree-clicked');
+				}
+				/**
+				 * triggered when an node is deselected
+				 * @event
+				 * @name deselect_node.jstree
+				 * @param {Object} node
+				 * @param {Array} selected the current selection
+				 * @param {Object} event the event (if any) that triggered this deselect_node
+				 */
+				this.trigger('deselect_node', { 'node' : obj, 'selected' : this._data.core.selected, 'event' : e });
+				if(!supress_event) {
+					this.trigger('changed', { 'action' : 'deselect_node', 'node' : obj, 'selected' : this._data.core.selected, 'event' : e });
+				}
+			}
+		},
+		/**
+		 * select all nodes in the tree
+		 * @name select_all([supress_event])
+		 * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered
+		 * @trigger select_all.jstree, changed.jstree
+		 */
+		select_all : function (supress_event) {
+			var tmp = this._data.core.selected.concat([]), i, j;
+			this._data.core.selected = this._model.data[$.jstree.root].children_d.concat();
+			for(i = 0, j = this._data.core.selected.length; i < j; i++) {
+				if(this._model.data[this._data.core.selected[i]]) {
+					this._model.data[this._data.core.selected[i]].state.selected = true;
+				}
+			}
+			this.redraw(true);
+			/**
+			 * triggered when all nodes are selected
+			 * @event
+			 * @name select_all.jstree
+			 * @param {Array} selected the current selection
+			 */
+			this.trigger('select_all', { 'selected' : this._data.core.selected });
+			if(!supress_event) {
+				this.trigger('changed', { 'action' : 'select_all', 'selected' : this._data.core.selected, 'old_selection' : tmp });
+			}
+		},
+		/**
+		 * deselect all selected nodes
+		 * @name deselect_all([supress_event])
+		 * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered
+		 * @trigger deselect_all.jstree, changed.jstree
+		 */
+		deselect_all : function (supress_event) {
+			var tmp = this._data.core.selected.concat([]), i, j;
+			for(i = 0, j = this._data.core.selected.length; i < j; i++) {
+				if(this._model.data[this._data.core.selected[i]]) {
+					this._model.data[this._data.core.selected[i]].state.selected = false;
+				}
+			}
+			this._data.core.selected = [];
+			this.element.find('.jstree-clicked').removeClass('jstree-clicked').parent().attr('aria-selected', false);
+			/**
+			 * triggered when all nodes are deselected
+			 * @event
+			 * @name deselect_all.jstree
+			 * @param {Object} node the previous selection
+			 * @param {Array} selected the current selection
+			 */
+			this.trigger('deselect_all', { 'selected' : this._data.core.selected, 'node' : tmp });
+			if(!supress_event) {
+				this.trigger('changed', { 'action' : 'deselect_all', 'selected' : this._data.core.selected, 'old_selection' : tmp });
+			}
+		},
+		/**
+		 * checks if a node is selected
+		 * @name is_selected(obj)
+		 * @param  {mixed}  obj
+		 * @return {Boolean}
+		 */
+		is_selected : function (obj) {
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) {
+				return false;
+			}
+			return obj.state.selected;
+		},
+		/**
+		 * get an array of all selected nodes
+		 * @name get_selected([full])
+		 * @param  {mixed}  full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned
+		 * @return {Array}
+		 */
+		get_selected : function (full) {
+			return full ? $.map(this._data.core.selected, $.proxy(function (i) { return this.get_node(i); }, this)) : this._data.core.selected.slice();
+		},
+		/**
+		 * get an array of all top level selected nodes (ignoring children of selected nodes)
+		 * @name get_top_selected([full])
+		 * @param  {mixed}  full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned
+		 * @return {Array}
+		 */
+		get_top_selected : function (full) {
+			var tmp = this.get_selected(true),
+				obj = {}, i, j, k, l;
+			for(i = 0, j = tmp.length; i < j; i++) {
+				obj[tmp[i].id] = tmp[i];
+			}
+			for(i = 0, j = tmp.length; i < j; i++) {
+				for(k = 0, l = tmp[i].children_d.length; k < l; k++) {
+					if(obj[tmp[i].children_d[k]]) {
+						delete obj[tmp[i].children_d[k]];
+					}
+				}
+			}
+			tmp = [];
+			for(i in obj) {
+				if(obj.hasOwnProperty(i)) {
+					tmp.push(i);
+				}
+			}
+			return full ? $.map(tmp, $.proxy(function (i) { return this.get_node(i); }, this)) : tmp;
+		},
+		/**
+		 * get an array of all bottom level selected nodes (ignoring selected parents)
+		 * @name get_bottom_selected([full])
+		 * @param  {mixed}  full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned
+		 * @return {Array}
+		 */
+		get_bottom_selected : function (full) {
+			var tmp = this.get_selected(true),
+				obj = [], i, j;
+			for(i = 0, j = tmp.length; i < j; i++) {
+				if(!tmp[i].children.length) {
+					obj.push(tmp[i].id);
+				}
+			}
+			return full ? $.map(obj, $.proxy(function (i) { return this.get_node(i); }, this)) : obj;
+		},
+		/**
+		 * gets the current state of the tree so that it can be restored later with `set_state(state)`. Used internally.
+		 * @name get_state()
+		 * @private
+		 * @return {Object}
+		 */
+		get_state : function () {
+			var state	= {
+				'core' : {
+					'open' : [],
+					'scroll' : {
+						'left' : this.element.scrollLeft(),
+						'top' : this.element.scrollTop()
+					},
+					/*!
+					'themes' : {
+						'name' : this.get_theme(),
+						'icons' : this._data.core.themes.icons,
+						'dots' : this._data.core.themes.dots
+					},
+					*/
+					'selected' : []
+				}
+			}, i;
+			for(i in this._model.data) {
+				if(this._model.data.hasOwnProperty(i)) {
+					if(i !== $.jstree.root) {
+						if(this._model.data[i].state.opened) {
+							state.core.open.push(i);
+						}
+						if(this._model.data[i].state.selected) {
+							state.core.selected.push(i);
+						}
+					}
+				}
+			}
+			return state;
+		},
+		/**
+		 * sets the state of the tree. Used internally.
+		 * @name set_state(state [, callback])
+		 * @private
+		 * @param {Object} state the state to restore. Keep in mind this object is passed by reference and jstree will modify it.
+		 * @param {Function} callback an optional function to execute once the state is restored.
+		 * @trigger set_state.jstree
+		 */
+		set_state : function (state, callback) {
+			if(state) {
+				if(state.core) {
+					var res, n, t, _this, i;
+					if(state.core.open) {
+						if(!$.isArray(state.core.open) || !state.core.open.length) {
+							delete state.core.open;
+							this.set_state(state, callback);
+						}
+						else {
+							this._load_nodes(state.core.open, function (nodes) {
+								this.open_node(nodes, false, 0);
+								delete state.core.open;
+								this.set_state(state, callback);
+							}, true);
+						}
+						return false;
+					}
+					if(state.core.scroll) {
+						if(state.core.scroll && state.core.scroll.left !== undefined) {
+							this.element.scrollLeft(state.core.scroll.left);
+						}
+						if(state.core.scroll && state.core.scroll.top !== undefined) {
+							this.element.scrollTop(state.core.scroll.top);
+						}
+						delete state.core.scroll;
+						this.set_state(state, callback);
+						return false;
+					}
+					if(state.core.selected) {
+						_this = this;
+						this.deselect_all();
+						$.each(state.core.selected, function (i, v) {
+							_this.select_node(v, false, true);
+						});
+						delete state.core.selected;
+						this.set_state(state, callback);
+						return false;
+					}
+					for(i in state) {
+						if(state.hasOwnProperty(i) && i !== "core" && $.inArray(i, this.settings.plugins) === -1) {
+							delete state[i];
+						}
+					}
+					if($.isEmptyObject(state.core)) {
+						delete state.core;
+						this.set_state(state, callback);
+						return false;
+					}
+				}
+				if($.isEmptyObject(state)) {
+					state = null;
+					if(callback) { callback.call(this); }
+					/**
+					 * triggered when a `set_state` call completes
+					 * @event
+					 * @name set_state.jstree
+					 */
+					this.trigger('set_state');
+					return false;
+				}
+				return true;
+			}
+			return false;
+		},
+		/**
+		 * refreshes the tree - all nodes are reloaded with calls to `load_node`.
+		 * @name refresh()
+		 * @param {Boolean} skip_loading an option to skip showing the loading indicator
+		 * @param {Mixed} forget_state if set to `true` state will not be reapplied, if set to a function (receiving the current state as argument) the result of that function will be used as state
+		 * @trigger refresh.jstree
+		 */
+		refresh : function (skip_loading, forget_state) {
+			this._data.core.state = forget_state === true ? {} : this.get_state();
+			if(forget_state && $.isFunction(forget_state)) { this._data.core.state = forget_state.call(this, this._data.core.state); }
+			this._cnt = 0;
+			this._model.data = {};
+			this._model.data[$.jstree.root] = {
+				id : $.jstree.root,
+				parent : null,
+				parents : [],
+				children : [],
+				children_d : [],
+				state : { loaded : false }
+			};
+			this._data.core.selected = [];
+			this._data.core.last_clicked = null;
+			this._data.core.focused = null;
+
+			var c = this.get_container_ul()[0].className;
+			if(!skip_loading) {
+				this.element.html("<"+"ul class='"+c+"' role='group'><"+"li class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='treeitem' id='j"+this._id+"_loading'><i class='jstree-icon jstree-ocl'></i><"+"a class='jstree-anchor' href='#'><i class='jstree-icon jstree-themeicon-hidden'></i>" + this.get_string("Loading ...") + "</a></li></ul>");
+				this.element.attr('aria-activedescendant','j'+this._id+'_loading');
+			}
+			this.load_node($.jstree.root, function (o, s) {
+				if(s) {
+					this.get_container_ul()[0].className = c;
+					if(this._firstChild(this.get_container_ul()[0])) {
+						this.element.attr('aria-activedescendant',this._firstChild(this.get_container_ul()[0]).id);
+					}
+					this.set_state($.extend(true, {}, this._data.core.state), function () {
+						/**
+						 * triggered when a `refresh` call completes
+						 * @event
+						 * @name refresh.jstree
+						 */
+						this.trigger('refresh');
+					});
+				}
+				this._data.core.state = null;
+			});
+		},
+		/**
+		 * refreshes a node in the tree (reload its children) all opened nodes inside that node are reloaded with calls to `load_node`.
+		 * @name refresh_node(obj)
+		 * @param  {mixed} obj the node
+		 * @trigger refresh_node.jstree
+		 */
+		refresh_node : function (obj) {
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) { return false; }
+			var opened = [], to_load = [], s = this._data.core.selected.concat([]);
+			to_load.push(obj.id);
+			if(obj.state.opened === true) { opened.push(obj.id); }
+			this.get_node(obj, true).find('.jstree-open').each(function() { opened.push(this.id); });
+			this._load_nodes(to_load, $.proxy(function (nodes) {
+				this.open_node(opened, false, 0);
+				this.select_node(this._data.core.selected);
+				/**
+				 * triggered when a node is refreshed
+				 * @event
+				 * @name refresh_node.jstree
+				 * @param {Object} node - the refreshed node
+				 * @param {Array} nodes - an array of the IDs of the nodes that were reloaded
+				 */
+				this.trigger('refresh_node', { 'node' : obj, 'nodes' : nodes });
+			}, this));
+		},
+		/**
+		 * set (change) the ID of a node
+		 * @name set_id(obj, id)
+		 * @param  {mixed} obj the node
+		 * @param  {String} id the new ID
+		 * @return {Boolean}
+		 */
+		set_id : function (obj, id) {
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) { return false; }
+			var i, j, m = this._model.data;
+			id = id.toString();
+			// update parents (replace current ID with new one in children and children_d)
+			m[obj.parent].children[$.inArray(obj.id, m[obj.parent].children)] = id;
+			for(i = 0, j = obj.parents.length; i < j; i++) {
+				m[obj.parents[i]].children_d[$.inArray(obj.id, m[obj.parents[i]].children_d)] = id;
+			}
+			// update children (replace current ID with new one in parent and parents)
+			for(i = 0, j = obj.children.length; i < j; i++) {
+				m[obj.children[i]].parent = id;
+			}
+			for(i = 0, j = obj.children_d.length; i < j; i++) {
+				m[obj.children_d[i]].parents[$.inArray(obj.id, m[obj.children_d[i]].parents)] = id;
+			}
+			i = $.inArray(obj.id, this._data.core.selected);
+			if(i !== -1) { this._data.core.selected[i] = id; }
+			// update model and obj itself (obj.id, this._model.data[KEY])
+			i = this.get_node(obj.id, true);
+			if(i) {
+				i.attr('id', id).children('.jstree-anchor').attr('id', id + '_anchor').end().attr('aria-labelledby', id + '_anchor');
+				if(this.element.attr('aria-activedescendant') === obj.id) {
+					this.element.attr('aria-activedescendant', id);
+				}
+			}
+			delete m[obj.id];
+			obj.id = id;
+			obj.li_attr.id = id;
+			m[id] = obj;
+			return true;
+		},
+		/**
+		 * get the text value of a node
+		 * @name get_text(obj)
+		 * @param  {mixed} obj the node
+		 * @return {String}
+		 */
+		get_text : function (obj) {
+			obj = this.get_node(obj);
+			return (!obj || obj.id === $.jstree.root) ? false : obj.text;
+		},
+		/**
+		 * set the text value of a node. Used internally, please use `rename_node(obj, val)`.
+		 * @private
+		 * @name set_text(obj, val)
+		 * @param  {mixed} obj the node, you can pass an array to set the text on multiple nodes
+		 * @param  {String} val the new text value
+		 * @return {Boolean}
+		 * @trigger set_text.jstree
+		 */
+		set_text : function (obj, val) {
+			var t1, t2;
+			if($.isArray(obj)) {
+				obj = obj.slice();
+				for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+					this.set_text(obj[t1], val);
+				}
+				return true;
+			}
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) { return false; }
+			obj.text = val;
+			if(this.get_node(obj, true).length) {
+				this.redraw_node(obj.id);
+			}
+			/**
+			 * triggered when a node text value is changed
+			 * @event
+			 * @name set_text.jstree
+			 * @param {Object} obj
+			 * @param {String} text the new value
+			 */
+			this.trigger('set_text',{ "obj" : obj, "text" : val });
+			return true;
+		},
+		/**
+		 * gets a JSON representation of a node (or the whole tree)
+		 * @name get_json([obj, options])
+		 * @param  {mixed} obj
+		 * @param  {Object} options
+		 * @param  {Boolean} options.no_state do not return state information
+		 * @param  {Boolean} options.no_id do not return ID
+		 * @param  {Boolean} options.no_children do not include children
+		 * @param  {Boolean} options.no_data do not include node data
+		 * @param  {Boolean} options.flat return flat JSON instead of nested
+		 * @return {Object}
+		 */
+		get_json : function (obj, options, flat) {
+			obj = this.get_node(obj || $.jstree.root);
+			if(!obj) { return false; }
+			if(options && options.flat && !flat) { flat = []; }
+			var tmp = {
+				'id' : obj.id,
+				'text' : obj.text,
+				'icon' : this.get_icon(obj),
+				'li_attr' : $.extend(true, {}, obj.li_attr),
+				'a_attr' : $.extend(true, {}, obj.a_attr),
+				'state' : {},
+				'data' : options && options.no_data ? false : $.extend(true, {}, obj.data)
+				//( this.get_node(obj, true).length ? this.get_node(obj, true).data() : obj.data ),
+			}, i, j;
+			if(options && options.flat) {
+				tmp.parent = obj.parent;
+			}
+			else {
+				tmp.children = [];
+			}
+			if(!options || !options.no_state) {
+				for(i in obj.state) {
+					if(obj.state.hasOwnProperty(i)) {
+						tmp.state[i] = obj.state[i];
+					}
+				}
+			}
+			if(options && options.no_id) {
+				delete tmp.id;
+				if(tmp.li_attr && tmp.li_attr.id) {
+					delete tmp.li_attr.id;
+				}
+				if(tmp.a_attr && tmp.a_attr.id) {
+					delete tmp.a_attr.id;
+				}
+			}
+			if(options && options.flat && obj.id !== $.jstree.root) {
+				flat.push(tmp);
+			}
+			if(!options || !options.no_children) {
+				for(i = 0, j = obj.children.length; i < j; i++) {
+					if(options && options.flat) {
+						this.get_json(obj.children[i], options, flat);
+					}
+					else {
+						tmp.children.push(this.get_json(obj.children[i], options));
+					}
+				}
+			}
+			return options && options.flat ? flat : (obj.id === $.jstree.root ? tmp.children : tmp);
+		},
+		/**
+		 * create a new node (do not confuse with load_node)
+		 * @name create_node([obj, node, pos, callback, is_loaded])
+		 * @param  {mixed}   par       the parent node (to create a root node use either "#" (string) or `null`)
+		 * @param  {mixed}   node      the data for the new node (a valid JSON object, or a simple string with the name)
+		 * @param  {mixed}   pos       the index at which to insert the node, "first" and "last" are also supported, default is "last"
+		 * @param  {Function} callback a function to be called once the node is created
+		 * @param  {Boolean} is_loaded internal argument indicating if the parent node was succesfully loaded
+		 * @return {String}            the ID of the newly create node
+		 * @trigger model.jstree, create_node.jstree
+		 */
+		create_node : function (par, node, pos, callback, is_loaded) {
+			if(par === null) { par = $.jstree.root; }
+			par = this.get_node(par);
+			if(!par) { return false; }
+			pos = pos === undefined ? "last" : pos;
+			if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) {
+				return this.load_node(par, function () { this.create_node(par, node, pos, callback, true); });
+			}
+			if(!node) { node = { "text" : this.get_string('New node') }; }
+			if(typeof node === "string") { node = { "text" : node }; }
+			if(node.text === undefined) { node.text = this.get_string('New node'); }
+			var tmp, dpc, i, j;
+
+			if(par.id === $.jstree.root) {
+				if(pos === "before") { pos = "first"; }
+				if(pos === "after") { pos = "last"; }
+			}
+			switch(pos) {
+				case "before":
+					tmp = this.get_node(par.parent);
+					pos = $.inArray(par.id, tmp.children);
+					par = tmp;
+					break;
+				case "after" :
+					tmp = this.get_node(par.parent);
+					pos = $.inArray(par.id, tmp.children) + 1;
+					par = tmp;
+					break;
+				case "inside":
+				case "first":
+					pos = 0;
+					break;
+				case "last":
+					pos = par.children.length;
+					break;
+				default:
+					if(!pos) { pos = 0; }
+					break;
+			}
+			if(pos > par.children.length) { pos = par.children.length; }
+			if(!node.id) { node.id = true; }
+			if(!this.check("create_node", node, par, pos)) {
+				this.settings.core.error.call(this, this._data.core.last_error);
+				return false;
+			}
+			if(node.id === true) { delete node.id; }
+			node = this._parse_model_from_json(node, par.id, par.parents.concat());
+			if(!node) { return false; }
+			tmp = this.get_node(node);
+			dpc = [];
+			dpc.push(node);
+			dpc = dpc.concat(tmp.children_d);
+			this.trigger('model', { "nodes" : dpc, "parent" : par.id });
+
+			par.children_d = par.children_d.concat(dpc);
+			for(i = 0, j = par.parents.length; i < j; i++) {
+				this._model.data[par.parents[i]].children_d = this._model.data[par.parents[i]].children_d.concat(dpc);
+			}
+			node = tmp;
+			tmp = [];
+			for(i = 0, j = par.children.length; i < j; i++) {
+				tmp[i >= pos ? i+1 : i] = par.children[i];
+			}
+			tmp[pos] = node.id;
+			par.children = tmp;
+
+			this.redraw_node(par, true);
+			if(callback) { callback.call(this, this.get_node(node)); }
+			/**
+			 * triggered when a node is created
+			 * @event
+			 * @name create_node.jstree
+			 * @param {Object} node
+			 * @param {String} parent the parent's ID
+			 * @param {Number} position the position of the new node among the parent's children
+			 */
+			this.trigger('create_node', { "node" : this.get_node(node), "parent" : par.id, "position" : pos });
+			return node.id;
+		},
+		/**
+		 * set the text value of a node
+		 * @name rename_node(obj, val)
+		 * @param  {mixed} obj the node, you can pass an array to rename multiple nodes to the same name
+		 * @param  {String} val the new text value
+		 * @return {Boolean}
+		 * @trigger rename_node.jstree
+		 */
+		rename_node : function (obj, val) {
+			var t1, t2, old;
+			if($.isArray(obj)) {
+				obj = obj.slice();
+				for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+					this.rename_node(obj[t1], val);
+				}
+				return true;
+			}
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) { return false; }
+			old = obj.text;
+			if(!this.check("rename_node", obj, this.get_parent(obj), val)) {
+				this.settings.core.error.call(this, this._data.core.last_error);
+				return false;
+			}
+			this.set_text(obj, val); // .apply(this, Array.prototype.slice.call(arguments))
+			/**
+			 * triggered when a node is renamed
+			 * @event
+			 * @name rename_node.jstree
+			 * @param {Object} node
+			 * @param {String} text the new value
+			 * @param {String} old the old value
+			 */
+			this.trigger('rename_node', { "node" : obj, "text" : val, "old" : old });
+			return true;
+		},
+		/**
+		 * remove a node
+		 * @name delete_node(obj)
+		 * @param  {mixed} obj the node, you can pass an array to delete multiple nodes
+		 * @return {Boolean}
+		 * @trigger delete_node.jstree, changed.jstree
+		 */
+		delete_node : function (obj) {
+			var t1, t2, par, pos, tmp, i, j, k, l, c, top, lft;
+			if($.isArray(obj)) {
+				obj = obj.slice();
+				for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+					this.delete_node(obj[t1]);
+				}
+				return true;
+			}
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) { return false; }
+			par = this.get_node(obj.parent);
+			pos = $.inArray(obj.id, par.children);
+			c = false;
+			if(!this.check("delete_node", obj, par, pos)) {
+				this.settings.core.error.call(this, this._data.core.last_error);
+				return false;
+			}
+			if(pos !== -1) {
+				par.children = $.vakata.array_remove(par.children, pos);
+			}
+			tmp = obj.children_d.concat([]);
+			tmp.push(obj.id);
+			for(k = 0, l = tmp.length; k < l; k++) {
+				for(i = 0, j = obj.parents.length; i < j; i++) {
+					pos = $.inArray(tmp[k], this._model.data[obj.parents[i]].children_d);
+					if(pos !== -1) {
+						this._model.data[obj.parents[i]].children_d = $.vakata.array_remove(this._model.data[obj.parents[i]].children_d, pos);
+					}
+				}
+				if(this._model.data[tmp[k]].state.selected) {
+					c = true;
+					pos = $.inArray(tmp[k], this._data.core.selected);
+					if(pos !== -1) {
+						this._data.core.selected = $.vakata.array_remove(this._data.core.selected, pos);
+					}
+				}
+			}
+			/**
+			 * triggered when a node is deleted
+			 * @event
+			 * @name delete_node.jstree
+			 * @param {Object} node
+			 * @param {String} parent the parent's ID
+			 */
+			this.trigger('delete_node', { "node" : obj, "parent" : par.id });
+			if(c) {
+				this.trigger('changed', { 'action' : 'delete_node', 'node' : obj, 'selected' : this._data.core.selected, 'parent' : par.id });
+			}
+			for(k = 0, l = tmp.length; k < l; k++) {
+				delete this._model.data[tmp[k]];
+			}
+			if($.inArray(this._data.core.focused, tmp) !== -1) {
+				this._data.core.focused = null;
+				top = this.element[0].scrollTop;
+				lft = this.element[0].scrollLeft;
+				if(par.id === $.jstree.root) {
+					this.get_node(this._model.data[$.jstree.root].children[0], true).children('.jstree-anchor').focus();
+				}
+				else {
+					this.get_node(par, true).children('.jstree-anchor').focus();
+				}
+				this.element[0].scrollTop  = top;
+				this.element[0].scrollLeft = lft;
+			}
+			this.redraw_node(par, true);
+			return true;
+		},
+		/**
+		 * check if an operation is premitted on the tree. Used internally.
+		 * @private
+		 * @name check(chk, obj, par, pos)
+		 * @param  {String} chk the operation to check, can be "create_node", "rename_node", "delete_node", "copy_node" or "move_node"
+		 * @param  {mixed} obj the node
+		 * @param  {mixed} par the parent
+		 * @param  {mixed} pos the position to insert at, or if "rename_node" - the new name
+		 * @param  {mixed} more some various additional information, for example if a "move_node" operations is triggered by DND this will be the hovered node
+		 * @return {Boolean}
+		 */
+		check : function (chk, obj, par, pos, more) {
+			obj = obj && obj.id ? obj : this.get_node(obj);
+			par = par && par.id ? par : this.get_node(par);
+			var tmp = chk.match(/^move_node|copy_node|create_node$/i) ? par : obj,
+				chc = this.settings.core.check_callback;
+			if(chk === "move_node" || chk === "copy_node") {
+				if((!more || !more.is_multi) && (obj.id === par.id || $.inArray(obj.id, par.children) === pos || $.inArray(par.id, obj.children_d) !== -1)) {
+					this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_01', 'reason' : 'Moving parent inside child', 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };
+					return false;
+				}
+			}
+			if(tmp && tmp.data) { tmp = tmp.data; }
+			if(tmp && tmp.functions && (tmp.functions[chk] === false || tmp.functions[chk] === true)) {
+				if(tmp.functions[chk] === false) {
+					this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_02', 'reason' : 'Node data prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };
+				}
+				return tmp.functions[chk];
+			}
+			if(chc === false || ($.isFunction(chc) && chc.call(this, chk, obj, par, pos, more) === false) || (chc && chc[chk] === false)) {
+				this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_03', 'reason' : 'User config for core.check_callback prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };
+				return false;
+			}
+			return true;
+		},
+		/**
+		 * get the last error
+		 * @name last_error()
+		 * @return {Object}
+		 */
+		last_error : function () {
+			return this._data.core.last_error;
+		},
+		/**
+		 * move a node to a new parent
+		 * @name move_node(obj, par [, pos, callback, is_loaded])
+		 * @param  {mixed} obj the node to move, pass an array to move multiple nodes
+		 * @param  {mixed} par the new parent
+		 * @param  {mixed} pos the position to insert at (besides integer values, "first" and "last" are supported, as well as "before" and "after"), defaults to integer `0`
+		 * @param  {function} callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position
+		 * @param  {Boolean} is_loaded internal parameter indicating if the parent node has been loaded
+		 * @param  {Boolean} skip_redraw internal parameter indicating if the tree should be redrawn
+		 * @param  {Boolean} instance internal parameter indicating if the node comes from another instance
+		 * @trigger move_node.jstree
+		 */
+		move_node : function (obj, par, pos, callback, is_loaded, skip_redraw, origin) {
+			var t1, t2, old_par, old_pos, new_par, old_ins, is_multi, dpc, tmp, i, j, k, l, p;
+
+			par = this.get_node(par);
+			pos = pos === undefined ? 0 : pos;
+			if(!par) { return false; }
+			if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) {
+				return this.load_node(par, function () { this.move_node(obj, par, pos, callback, true, false, origin); });
+			}
+
+			if($.isArray(obj)) {
+				if(obj.length === 1) {
+					obj = obj[0];
+				}
+				else {
+					//obj = obj.slice();
+					for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+						if((tmp = this.move_node(obj[t1], par, pos, callback, is_loaded, false, origin))) {
+							par = tmp;
+							pos = "after";
+						}
+					}
+					this.redraw();
+					return true;
+				}
+			}
+			obj = obj && obj.id ? obj : this.get_node(obj);
+
+			if(!obj || obj.id === $.jstree.root) { return false; }
+
+			old_par = (obj.parent || $.jstree.root).toString();
+			new_par = (!pos.toString().match(/^(before|after)$/) || par.id === $.jstree.root) ? par : this.get_node(par.parent);
+			old_ins = origin ? origin : (this._model.data[obj.id] ? this : $.jstree.reference(obj.id));
+			is_multi = !old_ins || !old_ins._id || (this._id !== old_ins._id);
+			old_pos = old_ins && old_ins._id && old_par && old_ins._model.data[old_par] && old_ins._model.data[old_par].children ? $.inArray(obj.id, old_ins._model.data[old_par].children) : -1;
+			if(old_ins && old_ins._id) {
+				obj = old_ins._model.data[obj.id];
+			}
+
+			if(is_multi) {
+				if((tmp = this.copy_node(obj, par, pos, callback, is_loaded, false, origin))) {
+					if(old_ins) { old_ins.delete_node(obj); }
+					return tmp;
+				}
+				return false;
+			}
+			//var m = this._model.data;
+			if(par.id === $.jstree.root) {
+				if(pos === "before") { pos = "first"; }
+				if(pos === "after") { pos = "last"; }
+			}
+			switch(pos) {
+				case "before":
+					pos = $.inArray(par.id, new_par.children);
+					break;
+				case "after" :
+					pos = $.inArray(par.id, new_par.children) + 1;
+					break;
+				case "inside":
+				case "first":
+					pos = 0;
+					break;
+				case "last":
+					pos = new_par.children.length;
+					break;
+				default:
+					if(!pos) { pos = 0; }
+					break;
+			}
+			if(pos > new_par.children.length) { pos = new_par.children.length; }
+			if(!this.check("move_node", obj, new_par, pos, { 'core' : true, 'origin' : origin, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id) })) {
+				this.settings.core.error.call(this, this._data.core.last_error);
+				return false;
+			}
+			if(obj.parent === new_par.id) {
+				dpc = new_par.children.concat();
+				tmp = $.inArray(obj.id, dpc);
+				if(tmp !== -1) {
+					dpc = $.vakata.array_remove(dpc, tmp);
+					if(pos > tmp) { pos--; }
+				}
+				tmp = [];
+				for(i = 0, j = dpc.length; i < j; i++) {
+					tmp[i >= pos ? i+1 : i] = dpc[i];
+				}
+				tmp[pos] = obj.id;
+				new_par.children = tmp;
+				this._node_changed(new_par.id);
+				this.redraw(new_par.id === $.jstree.root);
+			}
+			else {
+				// clean old parent and up
+				tmp = obj.children_d.concat();
+				tmp.push(obj.id);
+				for(i = 0, j = obj.parents.length; i < j; i++) {
+					dpc = [];
+					p = old_ins._model.data[obj.parents[i]].children_d;
+					for(k = 0, l = p.length; k < l; k++) {
+						if($.inArray(p[k], tmp) === -1) {
+							dpc.push(p[k]);
+						}
+					}
+					old_ins._model.data[obj.parents[i]].children_d = dpc;
+				}
+				old_ins._model.data[old_par].children = $.vakata.array_remove_item(old_ins._model.data[old_par].children, obj.id);
+
+				// insert into new parent and up
+				for(i = 0, j = new_par.parents.length; i < j; i++) {
+					this._model.data[new_par.parents[i]].children_d = this._model.data[new_par.parents[i]].children_d.concat(tmp);
+				}
+				dpc = [];
+				for(i = 0, j = new_par.children.length; i < j; i++) {
+					dpc[i >= pos ? i+1 : i] = new_par.children[i];
+				}
+				dpc[pos] = obj.id;
+				new_par.children = dpc;
+				new_par.children_d.push(obj.id);
+				new_par.children_d = new_par.children_d.concat(obj.children_d);
+
+				// update object
+				obj.parent = new_par.id;
+				tmp = new_par.parents.concat();
+				tmp.unshift(new_par.id);
+				p = obj.parents.length;
+				obj.parents = tmp;
+
+				// update object children
+				tmp = tmp.concat();
+				for(i = 0, j = obj.children_d.length; i < j; i++) {
+					this._model.data[obj.children_d[i]].parents = this._model.data[obj.children_d[i]].parents.slice(0,p*-1);
+					Array.prototype.push.apply(this._model.data[obj.children_d[i]].parents, tmp);
+				}
+
+				if(old_par === $.jstree.root || new_par.id === $.jstree.root) {
+					this._model.force_full_redraw = true;
+				}
+				if(!this._model.force_full_redraw) {
+					this._node_changed(old_par);
+					this._node_changed(new_par.id);
+				}
+				if(!skip_redraw) {
+					this.redraw();
+				}
+			}
+			if(callback) { callback.call(this, obj, new_par, pos); }
+			/**
+			 * triggered when a node is moved
+			 * @event
+			 * @name move_node.jstree
+			 * @param {Object} node
+			 * @param {String} parent the parent's ID
+			 * @param {Number} position the position of the node among the parent's children
+			 * @param {String} old_parent the old parent of the node
+			 * @param {Number} old_position the old position of the node
+			 * @param {Boolean} is_multi do the node and new parent belong to different instances
+			 * @param {jsTree} old_instance the instance the node came from
+			 * @param {jsTree} new_instance the instance of the new parent
+			 */
+			this.trigger('move_node', { "node" : obj, "parent" : new_par.id, "position" : pos, "old_parent" : old_par, "old_position" : old_pos, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id), 'old_instance' : old_ins, 'new_instance' : this });
+			return obj.id;
+		},
+		/**
+		 * copy a node to a new parent
+		 * @name copy_node(obj, par [, pos, callback, is_loaded])
+		 * @param  {mixed} obj the node to copy, pass an array to copy multiple nodes
+		 * @param  {mixed} par the new parent
+		 * @param  {mixed} pos the position to insert at (besides integer values, "first" and "last" are supported, as well as "before" and "after"), defaults to integer `0`
+		 * @param  {function} callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position
+		 * @param  {Boolean} is_loaded internal parameter indicating if the parent node has been loaded
+		 * @param  {Boolean} skip_redraw internal parameter indicating if the tree should be redrawn
+		 * @param  {Boolean} instance internal parameter indicating if the node comes from another instance
+		 * @trigger model.jstree copy_node.jstree
+		 */
+		copy_node : function (obj, par, pos, callback, is_loaded, skip_redraw, origin) {
+			var t1, t2, dpc, tmp, i, j, node, old_par, new_par, old_ins, is_multi;
+
+			par = this.get_node(par);
+			pos = pos === undefined ? 0 : pos;
+			if(!par) { return false; }
+			if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) {
+				return this.load_node(par, function () { this.copy_node(obj, par, pos, callback, true, false, origin); });
+			}
+
+			if($.isArray(obj)) {
+				if(obj.length === 1) {
+					obj = obj[0];
+				}
+				else {
+					//obj = obj.slice();
+					for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+						if((tmp = this.copy_node(obj[t1], par, pos, callback, is_loaded, true, origin))) {
+							par = tmp;
+							pos = "after";
+						}
+					}
+					this.redraw();
+					return true;
+				}
+			}
+			obj = obj && obj.id ? obj : this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) { return false; }
+
+			old_par = (obj.parent || $.jstree.root).toString();
+			new_par = (!pos.toString().match(/^(before|after)$/) || par.id === $.jstree.root) ? par : this.get_node(par.parent);
+			old_ins = origin ? origin : (this._model.data[obj.id] ? this : $.jstree.reference(obj.id));
+			is_multi = !old_ins || !old_ins._id || (this._id !== old_ins._id);
+
+			if(old_ins && old_ins._id) {
+				obj = old_ins._model.data[obj.id];
+			}
+
+			if(par.id === $.jstree.root) {
+				if(pos === "before") { pos = "first"; }
+				if(pos === "after") { pos = "last"; }
+			}
+			switch(pos) {
+				case "before":
+					pos = $.inArray(par.id, new_par.children);
+					break;
+				case "after" :
+					pos = $.inArray(par.id, new_par.children) + 1;
+					break;
+				case "inside":
+				case "first":
+					pos = 0;
+					break;
+				case "last":
+					pos = new_par.children.length;
+					break;
+				default:
+					if(!pos) { pos = 0; }
+					break;
+			}
+			if(pos > new_par.children.length) { pos = new_par.children.length; }
+			if(!this.check("copy_node", obj, new_par, pos, { 'core' : true, 'origin' : origin, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id) })) {
+				this.settings.core.error.call(this, this._data.core.last_error);
+				return false;
+			}
+			node = old_ins ? old_ins.get_json(obj, { no_id : true, no_data : true, no_state : true }) : obj;
+			if(!node) { return false; }
+			if(node.id === true) { delete node.id; }
+			node = this._parse_model_from_json(node, new_par.id, new_par.parents.concat());
+			if(!node) { return false; }
+			tmp = this.get_node(node);
+			if(obj && obj.state && obj.state.loaded === false) { tmp.state.loaded = false; }
+			dpc = [];
+			dpc.push(node);
+			dpc = dpc.concat(tmp.children_d);
+			this.trigger('model', { "nodes" : dpc, "parent" : new_par.id });
+
+			// insert into new parent and up
+			for(i = 0, j = new_par.parents.length; i < j; i++) {
+				this._model.data[new_par.parents[i]].children_d = this._model.data[new_par.parents[i]].children_d.concat(dpc);
+			}
+			dpc = [];
+			for(i = 0, j = new_par.children.length; i < j; i++) {
+				dpc[i >= pos ? i+1 : i] = new_par.children[i];
+			}
+			dpc[pos] = tmp.id;
+			new_par.children = dpc;
+			new_par.children_d.push(tmp.id);
+			new_par.children_d = new_par.children_d.concat(tmp.children_d);
+
+			if(new_par.id === $.jstree.root) {
+				this._model.force_full_redraw = true;
+			}
+			if(!this._model.force_full_redraw) {
+				this._node_changed(new_par.id);
+			}
+			if(!skip_redraw) {
+				this.redraw(new_par.id === $.jstree.root);
+			}
+			if(callback) { callback.call(this, tmp, new_par, pos); }
+			/**
+			 * triggered when a node is copied
+			 * @event
+			 * @name copy_node.jstree
+			 * @param {Object} node the copied node
+			 * @param {Object} original the original node
+			 * @param {String} parent the parent's ID
+			 * @param {Number} position the position of the node among the parent's children
+			 * @param {String} old_parent the old parent of the node
+			 * @param {Number} old_position the position of the original node
+			 * @param {Boolean} is_multi do the node and new parent belong to different instances
+			 * @param {jsTree} old_instance the instance the node came from
+			 * @param {jsTree} new_instance the instance of the new parent
+			 */
+			this.trigger('copy_node', { "node" : tmp, "original" : obj, "parent" : new_par.id, "position" : pos, "old_parent" : old_par, "old_position" : old_ins && old_ins._id && old_par && old_ins._model.data[old_par] && old_ins._model.data[old_par].children ? $.inArray(obj.id, old_ins._model.data[old_par].children) : -1,'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id), 'old_instance' : old_ins, 'new_instance' : this });
+			return tmp.id;
+		},
+		/**
+		 * cut a node (a later call to `paste(obj)` would move the node)
+		 * @name cut(obj)
+		 * @param  {mixed} obj multiple objects can be passed using an array
+		 * @trigger cut.jstree
+		 */
+		cut : function (obj) {
+			if(!obj) { obj = this._data.core.selected.concat(); }
+			if(!$.isArray(obj)) { obj = [obj]; }
+			if(!obj.length) { return false; }
+			var tmp = [], o, t1, t2;
+			for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+				o = this.get_node(obj[t1]);
+				if(o && o.id && o.id !== $.jstree.root) { tmp.push(o); }
+			}
+			if(!tmp.length) { return false; }
+			ccp_node = tmp;
+			ccp_inst = this;
+			ccp_mode = 'move_node';
+			/**
+			 * triggered when nodes are added to the buffer for moving
+			 * @event
+			 * @name cut.jstree
+			 * @param {Array} node
+			 */
+			this.trigger('cut', { "node" : obj });
+		},
+		/**
+		 * copy a node (a later call to `paste(obj)` would copy the node)
+		 * @name copy(obj)
+		 * @param  {mixed} obj multiple objects can be passed using an array
+		 * @trigger copy.jstree
+		 */
+		copy : function (obj) {
+			if(!obj) { obj = this._data.core.selected.concat(); }
+			if(!$.isArray(obj)) { obj = [obj]; }
+			if(!obj.length) { return false; }
+			var tmp = [], o, t1, t2;
+			for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+				o = this.get_node(obj[t1]);
+				if(o && o.id && o.id !== $.jstree.root) { tmp.push(o); }
+			}
+			if(!tmp.length) { return false; }
+			ccp_node = tmp;
+			ccp_inst = this;
+			ccp_mode = 'copy_node';
+			/**
+			 * triggered when nodes are added to the buffer for copying
+			 * @event
+			 * @name copy.jstree
+			 * @param {Array} node
+			 */
+			this.trigger('copy', { "node" : obj });
+		},
+		/**
+		 * get the current buffer (any nodes that are waiting for a paste operation)
+		 * @name get_buffer()
+		 * @return {Object} an object consisting of `mode` ("copy_node" or "move_node"), `node` (an array of objects) and `inst` (the instance)
+		 */
+		get_buffer : function () {
+			return { 'mode' : ccp_mode, 'node' : ccp_node, 'inst' : ccp_inst };
+		},
+		/**
+		 * check if there is something in the buffer to paste
+		 * @name can_paste()
+		 * @return {Boolean}
+		 */
+		can_paste : function () {
+			return ccp_mode !== false && ccp_node !== false; // && ccp_inst._model.data[ccp_node];
+		},
+		/**
+		 * copy or move the previously cut or copied nodes to a new parent
+		 * @name paste(obj [, pos])
+		 * @param  {mixed} obj the new parent
+		 * @param  {mixed} pos the position to insert at (besides integer, "first" and "last" are supported), defaults to integer `0`
+		 * @trigger paste.jstree
+		 */
+		paste : function (obj, pos) {
+			obj = this.get_node(obj);
+			if(!obj || !ccp_mode || !ccp_mode.match(/^(copy_node|move_node)$/) || !ccp_node) { return false; }
+			if(this[ccp_mode](ccp_node, obj, pos, false, false, false, ccp_inst)) {
+				/**
+				 * triggered when paste is invoked
+				 * @event
+				 * @name paste.jstree
+				 * @param {String} parent the ID of the receiving node
+				 * @param {Array} node the nodes in the buffer
+				 * @param {String} mode the performed operation - "copy_node" or "move_node"
+				 */
+				this.trigger('paste', { "parent" : obj.id, "node" : ccp_node, "mode" : ccp_mode });
+			}
+			ccp_node = false;
+			ccp_mode = false;
+			ccp_inst = false;
+		},
+		/**
+		 * clear the buffer of previously copied or cut nodes
+		 * @name clear_buffer()
+		 * @trigger clear_buffer.jstree
+		 */
+		clear_buffer : function () {
+			ccp_node = false;
+			ccp_mode = false;
+			ccp_inst = false;
+			/**
+			 * triggered when the copy / cut buffer is cleared
+			 * @event
+			 * @name clear_buffer.jstree
+			 */
+			this.trigger('clear_buffer');
+		},
+		/**
+		 * put a node in edit mode (input field to rename the node)
+		 * @name edit(obj [, default_text, callback])
+		 * @param  {mixed} obj
+		 * @param  {String} default_text the text to populate the input with (if omitted or set to a non-string value the node's text value is used)
+		 * @param  {Function} callback a function to be called once the text box is blurred, it is called in the instance's scope and receives the node, a status parameter (true if the rename is successful, false otherwise) and a boolean indicating if the user cancelled the edit. You can access the node's title using .text
+		 */
+		edit : function (obj, default_text, callback) {
+			var rtl, w, a, s, t, h1, h2, fn, tmp, cancel = false;
+			obj = this.get_node(obj);
+			if(!obj) { return false; }
+			if(this.settings.core.check_callback === false) {
+				this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_07', 'reason' : 'Could not edit node because of check_callback' };
+				this.settings.core.error.call(this, this._data.core.last_error);
+				return false;
+			}
+			tmp = obj;
+			default_text = typeof default_text === 'string' ? default_text : obj.text;
+			this.set_text(obj, "");
+			obj = this._open_to(obj);
+			tmp.text = default_text;
+
+			rtl = this._data.core.rtl;
+			w  = this.element.width();
+			this._data.core.focused = tmp.id;
+			a  = obj.children('.jstree-anchor').focus();
+			s  = $('<span>');
+			/*!
+			oi = obj.children("i:visible"),
+			ai = a.children("i:visible"),
+			w1 = oi.width() * oi.length,
+			w2 = ai.width() * ai.length,
+			*/
+			t  = default_text;
+			h1 = $("<"+"div />", { css : { "position" : "absolute", "top" : "-200px", "left" : (rtl ? "0px" : "-1000px"), "visibility" : "hidden" } }).appendTo("body");
+			h2 = $("<"+"input />", {
+						"value" : t,
+						"class" : "jstree-rename-input",
+						// "size" : t.length,
+						"css" : {
+							"padding" : "0",
+							"border" : "1px solid silver",
+							"box-sizing" : "border-box",
+							"display" : "inline-block",
+							"height" : (this._data.core.li_height) + "px",
+							"lineHeight" : (this._data.core.li_height) + "px",
+							"width" : "150px" // will be set a bit further down
+						},
+						"blur" : $.proxy(function (e) {
+							e.stopImmediatePropagation();
+							e.preventDefault();
+							var i = s.children(".jstree-rename-input"),
+								v = i.val(),
+								f = this.settings.core.force_text,
+								nv;
+							if(v === "") { v = t; }
+							h1.remove();
+							s.replaceWith(a);
+							s.remove();
+							t = f ? t : $('<div></div>').append($.parseHTML(t)).html();
+							this.set_text(obj, t);
+							nv = !!this.rename_node(obj, f ? $('<div></div>').text(v).text() : $('<div></div>').append($.parseHTML(v)).html());
+							if(!nv) {
+								this.set_text(obj, t); // move this up? and fix #483
+							}
+							this._data.core.focused = tmp.id;
+							setTimeout($.proxy(function () {
+								var node = this.get_node(tmp.id, true);
+								if(node.length) {
+									this._data.core.focused = tmp.id;
+									node.children('.jstree-anchor').focus();
+								}
+							}, this), 0);
+							if(callback) {
+								callback.call(this, tmp, nv, cancel);
+							}
+						}, this),
+						"keydown" : function (e) {
+							var key = e.which;
+							if(key === 27) {
+								cancel = true;
+								this.value = t;
+							}
+							if(key === 27 || key === 13 || key === 37 || key === 38 || key === 39 || key === 40 || key === 32) {
+								e.stopImmediatePropagation();
+							}
+							if(key === 27 || key === 13) {
+								e.preventDefault();
+								this.blur();
+							}
+						},
+						"click" : function (e) { e.stopImmediatePropagation(); },
+						"mousedown" : function (e) { e.stopImmediatePropagation(); },
+						"keyup" : function (e) {
+							h2.width(Math.min(h1.text("pW" + this.value).width(),w));
+						},
+						"keypress" : function(e) {
+							if(e.which === 13) { return false; }
+						}
+					});
+				fn = {
+						fontFamily		: a.css('fontFamily')		|| '',
+						fontSize		: a.css('fontSize')			|| '',
+						fontWeight		: a.css('fontWeight')		|| '',
+						fontStyle		: a.css('fontStyle')		|| '',
+						fontStretch		: a.css('fontStretch')		|| '',
+						fontVariant		: a.css('fontVariant')		|| '',
+						letterSpacing	: a.css('letterSpacing')	|| '',
+						wordSpacing		: a.css('wordSpacing')		|| ''
+				};
+			s.attr('class', a.attr('class')).append(a.contents().clone()).append(h2);
+			a.replaceWith(s);
+			h1.css(fn);
+			h2.css(fn).width(Math.min(h1.text("pW" + h2[0].value).width(),w))[0].select();
+		},
+
+
+		/**
+		 * changes the theme
+		 * @name set_theme(theme_name [, theme_url])
+		 * @param {String} theme_name the name of the new theme to apply
+		 * @param {mixed} theme_url  the location of the CSS file for this theme. Omit or set to `false` if you manually included the file. Set to `true` to autoload from the `core.themes.dir` directory.
+		 * @trigger set_theme.jstree
+		 */
+		set_theme : function (theme_name, theme_url) {
+			if(!theme_name) { return false; }
+			if(theme_url === true) {
+				var dir = this.settings.core.themes.dir;
+				if(!dir) { dir = $.jstree.path + '/themes'; }
+				theme_url = dir + '/' + theme_name + '/style.css';
+			}
+			if(theme_url && $.inArray(theme_url, themes_loaded) === -1) {
+				$('head').append('<'+'link rel="stylesheet" href="' + theme_url + '" type="text/css" />');
+				themes_loaded.push(theme_url);
+			}
+			if(this._data.core.themes.name) {
+				this.element.removeClass('jstree-' + this._data.core.themes.name);
+			}
+			this._data.core.themes.name = theme_name;
+			this.element.addClass('jstree-' + theme_name);
+			this.element[this.settings.core.themes.responsive ? 'addClass' : 'removeClass' ]('jstree-' + theme_name + '-responsive');
+			/**
+			 * triggered when a theme is set
+			 * @event
+			 * @name set_theme.jstree
+			 * @param {String} theme the new theme
+			 */
+			this.trigger('set_theme', { 'theme' : theme_name });
+		},
+		/**
+		 * gets the name of the currently applied theme name
+		 * @name get_theme()
+		 * @return {String}
+		 */
+		get_theme : function () { return this._data.core.themes.name; },
+		/**
+		 * changes the theme variant (if the theme has variants)
+		 * @name set_theme_variant(variant_name)
+		 * @param {String|Boolean} variant_name the variant to apply (if `false` is used the current variant is removed)
+		 */
+		set_theme_variant : function (variant_name) {
+			if(this._data.core.themes.variant) {
+				this.element.removeClass('jstree-' + this._data.core.themes.name + '-' + this._data.core.themes.variant);
+			}
+			this._data.core.themes.variant = variant_name;
+			if(variant_name) {
+				this.element.addClass('jstree-' + this._data.core.themes.name + '-' + this._data.core.themes.variant);
+			}
+		},
+		/**
+		 * gets the name of the currently applied theme variant
+		 * @name get_theme()
+		 * @return {String}
+		 */
+		get_theme_variant : function () { return this._data.core.themes.variant; },
+		/**
+		 * shows a striped background on the container (if the theme supports it)
+		 * @name show_stripes()
+		 */
+		show_stripes : function () { this._data.core.themes.stripes = true; this.get_container_ul().addClass("jstree-striped"); },
+		/**
+		 * hides the striped background on the container
+		 * @name hide_stripes()
+		 */
+		hide_stripes : function () { this._data.core.themes.stripes = false; this.get_container_ul().removeClass("jstree-striped"); },
+		/**
+		 * toggles the striped background on the container
+		 * @name toggle_stripes()
+		 */
+		toggle_stripes : function () { if(this._data.core.themes.stripes) { this.hide_stripes(); } else { this.show_stripes(); } },
+		/**
+		 * shows the connecting dots (if the theme supports it)
+		 * @name show_dots()
+		 */
+		show_dots : function () { this._data.core.themes.dots = true; this.get_container_ul().removeClass("jstree-no-dots"); },
+		/**
+		 * hides the connecting dots
+		 * @name hide_dots()
+		 */
+		hide_dots : function () { this._data.core.themes.dots = false; this.get_container_ul().addClass("jstree-no-dots"); },
+		/**
+		 * toggles the connecting dots
+		 * @name toggle_dots()
+		 */
+		toggle_dots : function () { if(this._data.core.themes.dots) { this.hide_dots(); } else { this.show_dots(); } },
+		/**
+		 * show the node icons
+		 * @name show_icons()
+		 */
+		show_icons : function () { this._data.core.themes.icons = true; this.get_container_ul().removeClass("jstree-no-icons"); },
+		/**
+		 * hide the node icons
+		 * @name hide_icons()
+		 */
+		hide_icons : function () { this._data.core.themes.icons = false; this.get_container_ul().addClass("jstree-no-icons"); },
+		/**
+		 * toggle the node icons
+		 * @name toggle_icons()
+		 */
+		toggle_icons : function () { if(this._data.core.themes.icons) { this.hide_icons(); } else { this.show_icons(); } },
+		/**
+		 * set the node icon for a node
+		 * @name set_icon(obj, icon)
+		 * @param {mixed} obj
+		 * @param {String} icon the new icon - can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class
+		 */
+		set_icon : function (obj, icon) {
+			var t1, t2, dom, old;
+			if($.isArray(obj)) {
+				obj = obj.slice();
+				for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+					this.set_icon(obj[t1], icon);
+				}
+				return true;
+			}
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) { return false; }
+			old = obj.icon;
+			obj.icon = icon === true || icon === null || icon === undefined || icon === '' ? true : icon;
+			dom = this.get_node(obj, true).children(".jstree-anchor").children(".jstree-themeicon");
+			if(icon === false) {
+				this.hide_icon(obj);
+			}
+			else if(icon === true || icon === null || icon === undefined || icon === '') {
+				dom.removeClass('jstree-themeicon-custom ' + old).css("background","").removeAttr("rel");
+				if(old === false) { this.show_icon(obj); }
+			}
+			else if(icon.indexOf("/") === -1 && icon.indexOf(".") === -1) {
+				dom.removeClass(old).css("background","");
+				dom.addClass(icon + ' jstree-themeicon-custom').attr("rel",icon);
+				if(old === false) { this.show_icon(obj); }
+			}
+			else {
+				dom.removeClass(old).css("background","");
+				dom.addClass('jstree-themeicon-custom').css("background", "url('" + icon + "') center center no-repeat").attr("rel",icon);
+				if(old === false) { this.show_icon(obj); }
+			}
+			return true;
+		},
+		/**
+		 * get the node icon for a node
+		 * @name get_icon(obj)
+		 * @param {mixed} obj
+		 * @return {String}
+		 */
+		get_icon : function (obj) {
+			obj = this.get_node(obj);
+			return (!obj || obj.id === $.jstree.root) ? false : obj.icon;
+		},
+		/**
+		 * hide the icon on an individual node
+		 * @name hide_icon(obj)
+		 * @param {mixed} obj
+		 */
+		hide_icon : function (obj) {
+			var t1, t2;
+			if($.isArray(obj)) {
+				obj = obj.slice();
+				for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+					this.hide_icon(obj[t1]);
+				}
+				return true;
+			}
+			obj = this.get_node(obj);
+			if(!obj || obj === $.jstree.root) { return false; }
+			obj.icon = false;
+			this.get_node(obj, true).children(".jstree-anchor").children(".jstree-themeicon").addClass('jstree-themeicon-hidden');
+			return true;
+		},
+		/**
+		 * show the icon on an individual node
+		 * @name show_icon(obj)
+		 * @param {mixed} obj
+		 */
+		show_icon : function (obj) {
+			var t1, t2, dom;
+			if($.isArray(obj)) {
+				obj = obj.slice();
+				for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+					this.show_icon(obj[t1]);
+				}
+				return true;
+			}
+			obj = this.get_node(obj);
+			if(!obj || obj === $.jstree.root) { return false; }
+			dom = this.get_node(obj, true);
+			obj.icon = dom.length ? dom.children(".jstree-anchor").children(".jstree-themeicon").attr('rel') : true;
+			if(!obj.icon) { obj.icon = true; }
+			dom.children(".jstree-anchor").children(".jstree-themeicon").removeClass('jstree-themeicon-hidden');
+			return true;
+		}
+	};
+
+	// helpers
+	$.vakata = {};
+	// collect attributes
+	$.vakata.attributes = function(node, with_values) {
+		node = $(node)[0];
+		var attr = with_values ? {} : [];
+		if(node && node.attributes) {
+			$.each(node.attributes, function (i, v) {
+				if($.inArray(v.name.toLowerCase(),['style','contenteditable','hasfocus','tabindex']) !== -1) { return; }
+				if(v.value !== null && $.trim(v.value) !== '') {
+					if(with_values) { attr[v.name] = v.value; }
+					else { attr.push(v.name); }
+				}
+			});
+		}
+		return attr;
+	};
+	$.vakata.array_unique = function(array) {
+		var a = [], i, j, l, o = {};
+		for(i = 0, l = array.length; i < l; i++) {
+			if(o[array[i]] === undefined) {
+				a.push(array[i]);
+				o[array[i]] = true;
+			}
+		}
+		return a;
+	};
+	// remove item from array
+	$.vakata.array_remove = function(array, from, to) {
+		var rest = array.slice((to || from) + 1 || array.length);
+		array.length = from < 0 ? array.length + from : from;
+		array.push.apply(array, rest);
+		return array;
+	};
+	// remove item from array
+	$.vakata.array_remove_item = function(array, item) {
+		var tmp = $.inArray(item, array);
+		return tmp !== -1 ? $.vakata.array_remove(array, tmp) : array;
+	};
+
+
+/**
+ * ### Changed plugin
+ *
+ * This plugin adds more information to the `changed.jstree` event. The new data is contained in the `changed` event data property, and contains a lists of `selected` and `deselected` nodes.
+ */
+
+	$.jstree.plugins.changed = function (options, parent) {
+		var last = [];
+		this.trigger = function (ev, data) {
+			var i, j;
+			if(!data) {
+				data = {};
+			}
+			if(ev.replace('.jstree','') === 'changed') {
+				data.changed = { selected : [], deselected : [] };
+				var tmp = {};
+				for(i = 0, j = last.length; i < j; i++) {
+					tmp[last[i]] = 1;
+				}
+				for(i = 0, j = data.selected.length; i < j; i++) {
+					if(!tmp[data.selected[i]]) {
+						data.changed.selected.push(data.selected[i]);
+					}
+					else {
+						tmp[data.selected[i]] = 2;
+					}
+				}
+				for(i = 0, j = last.length; i < j; i++) {
+					if(tmp[last[i]] === 1) {
+						data.changed.deselected.push(last[i]);
+					}
+				}
+				last = data.selected.slice();
+			}
+			/**
+			 * triggered when selection changes (the "changed" plugin enhances the original event with more data)
+			 * @event
+			 * @name changed.jstree
+			 * @param {Object} node
+			 * @param {Object} action the action that caused the selection to change
+			 * @param {Array} selected the current selection
+			 * @param {Object} changed an object containing two properties `selected` and `deselected` - both arrays of node IDs, which were selected or deselected since the last changed event
+			 * @param {Object} event the event (if any) that triggered this changed event
+			 * @plugin changed
+			 */
+			parent.trigger.call(this, ev, data);
+		};
+		this.refresh = function (skip_loading, forget_state) {
+			last = [];
+			return parent.refresh.apply(this, arguments);
+		};
+	};
+
+/**
+ * ### Checkbox plugin
+ *
+ * This plugin renders checkbox icons in front of each node, making multiple selection much easier.
+ * It also supports tri-state behavior, meaning that if a node has a few of its children checked it will be rendered as undetermined, and state will be propagated up.
+ */
+
+	var _i = document.createElement('I');
+	_i.className = 'jstree-icon jstree-checkbox';
+	_i.setAttribute('role', 'presentation');
+	/**
+	 * stores all defaults for the checkbox plugin
+	 * @name $.jstree.defaults.checkbox
+	 * @plugin checkbox
+	 */
+	$.jstree.defaults.checkbox = {
+		/**
+		 * a boolean indicating if checkboxes should be visible (can be changed at a later time using `show_checkboxes()` and `hide_checkboxes`). Defaults to `true`.
+		 * @name $.jstree.defaults.checkbox.visible
+		 * @plugin checkbox
+		 */
+		visible				: true,
+		/**
+		 * a boolean indicating if checkboxes should cascade down and have an undetermined state. Defaults to `true`.
+		 * @name $.jstree.defaults.checkbox.three_state
+		 * @plugin checkbox
+		 */
+		three_state			: true,
+		/**
+		 * a boolean indicating if clicking anywhere on the node should act as clicking on the checkbox. Defaults to `true`.
+		 * @name $.jstree.defaults.checkbox.whole_node
+		 * @plugin checkbox
+		 */
+		whole_node			: true,
+		/**
+		 * a boolean indicating if the selected style of a node should be kept, or removed. Defaults to `true`.
+		 * @name $.jstree.defaults.checkbox.keep_selected_style
+		 * @plugin checkbox
+		 */
+		keep_selected_style	: true,
+		/**
+		 * This setting controls how cascading and undetermined nodes are applied.
+		 * If 'up' is in the string - cascading up is enabled, if 'down' is in the string - cascading down is enabled, if 'undetermined' is in the string - undetermined nodes will be used.
+		 * If `three_state` is set to `true` this setting is automatically set to 'up+down+undetermined'. Defaults to ''.
+		 * @name $.jstree.defaults.checkbox.cascade
+		 * @plugin checkbox
+		 */
+		cascade				: '',
+		/**
+		 * This setting controls if checkbox are bound to the general tree selection or to an internal array maintained by the checkbox plugin. Defaults to `true`, only set to `false` if you know exactly what you are doing.
+		 * @name $.jstree.defaults.checkbox.tie_selection
+		 * @plugin checkbox
+		 */
+		tie_selection		: true
+	};
+	$.jstree.plugins.checkbox = function (options, parent) {
+		this.bind = function () {
+			parent.bind.call(this);
+			this._data.checkbox.uto = false;
+			this._data.checkbox.selected = [];
+			if(this.settings.checkbox.three_state) {
+				this.settings.checkbox.cascade = 'up+down+undetermined';
+			}
+			this.element
+				.on("init.jstree", $.proxy(function () {
+						this._data.checkbox.visible = this.settings.checkbox.visible;
+						if(!this.settings.checkbox.keep_selected_style) {
+							this.element.addClass('jstree-checkbox-no-clicked');
+						}
+						if(this.settings.checkbox.tie_selection) {
+							this.element.addClass('jstree-checkbox-selection');
+						}
+					}, this))
+				.on("loading.jstree", $.proxy(function () {
+						this[ this._data.checkbox.visible ? 'show_checkboxes' : 'hide_checkboxes' ]();
+					}, this));
+			if(this.settings.checkbox.cascade.indexOf('undetermined') !== -1) {
+				this.element
+					.on('changed.jstree uncheck_node.jstree check_node.jstree uncheck_all.jstree check_all.jstree move_node.jstree copy_node.jstree redraw.jstree open_node.jstree', $.proxy(function () {
+							// only if undetermined is in setting
+							if(this._data.checkbox.uto) { clearTimeout(this._data.checkbox.uto); }
+							this._data.checkbox.uto = setTimeout($.proxy(this._undetermined, this), 50);
+						}, this));
+			}
+			if(!this.settings.checkbox.tie_selection) {
+				this.element
+					.on('model.jstree', $.proxy(function (e, data) {
+						var m = this._model.data,
+							p = m[data.parent],
+							dpc = data.nodes,
+							i, j;
+						for(i = 0, j = dpc.length; i < j; i++) {
+							m[dpc[i]].state.checked = m[dpc[i]].state.checked || (m[dpc[i]].original && m[dpc[i]].original.state && m[dpc[i]].original.state.checked);
+							if(m[dpc[i]].state.checked) {
+								this._data.checkbox.selected.push(dpc[i]);
+							}
+						}
+					}, this));
+			}
+			if(this.settings.checkbox.cascade.indexOf('up') !== -1 || this.settings.checkbox.cascade.indexOf('down') !== -1) {
+				this.element
+					.on('model.jstree', $.proxy(function (e, data) {
+							var m = this._model.data,
+								p = m[data.parent],
+								dpc = data.nodes,
+								chd = [],
+								c, i, j, k, l, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection;
+
+							if(s.indexOf('down') !== -1) {
+								// apply down
+								if(p.state[ t ? 'selected' : 'checked' ]) {
+									for(i = 0, j = dpc.length; i < j; i++) {
+										m[dpc[i]].state[ t ? 'selected' : 'checked' ] = true;
+									}
+									this._data[ t ? 'core' : 'checkbox' ].selected = this._data[ t ? 'core' : 'checkbox' ].selected.concat(dpc);
+								}
+								else {
+									for(i = 0, j = dpc.length; i < j; i++) {
+										if(m[dpc[i]].state[ t ? 'selected' : 'checked' ]) {
+											for(k = 0, l = m[dpc[i]].children_d.length; k < l; k++) {
+												m[m[dpc[i]].children_d[k]].state[ t ? 'selected' : 'checked' ] = true;
+											}
+											this._data[ t ? 'core' : 'checkbox' ].selected = this._data[ t ? 'core' : 'checkbox' ].selected.concat(m[dpc[i]].children_d);
+										}
+									}
+								}
+							}
+
+							if(s.indexOf('up') !== -1) {
+								// apply up
+								for(i = 0, j = p.children_d.length; i < j; i++) {
+									if(!m[p.children_d[i]].children.length) {
+										chd.push(m[p.children_d[i]].parent);
+									}
+								}
+								chd = $.vakata.array_unique(chd);
+								for(k = 0, l = chd.length; k < l; k++) {
+									p = m[chd[k]];
+									while(p && p.id !== $.jstree.root) {
+										c = 0;
+										for(i = 0, j = p.children.length; i < j; i++) {
+											c += m[p.children[i]].state[ t ? 'selected' : 'checked' ];
+										}
+										if(c === j) {
+											p.state[ t ? 'selected' : 'checked' ] = true;
+											this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id);
+											tmp = this.get_node(p, true);
+											if(tmp && tmp.length) {
+												tmp.attr('aria-selected', true).children('.jstree-anchor').addClass( t ? 'jstree-clicked' : 'jstree-checked');
+											}
+										}
+										else {
+											break;
+										}
+										p = this.get_node(p.parent);
+									}
+								}
+							}
+
+							this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_unique(this._data[ t ? 'core' : 'checkbox' ].selected);
+						}, this))
+					.on(this.settings.checkbox.tie_selection ? 'select_node.jstree' : 'check_node.jstree', $.proxy(function (e, data) {
+							var obj = data.node,
+								m = this._model.data,
+								par = this.get_node(obj.parent),
+								dom = this.get_node(obj, true),
+								i, j, c, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection;
+
+							// apply down
+							if(s.indexOf('down') !== -1) {
+								this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_unique(this._data[ t ? 'core' : 'checkbox' ].selected.concat(obj.children_d));
+								for(i = 0, j = obj.children_d.length; i < j; i++) {
+									tmp = m[obj.children_d[i]];
+									tmp.state[ t ? 'selected' : 'checked' ] = true;
+									if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) {
+										tmp.original.state.undetermined = false;
+									}
+								}
+							}
+
+							// apply up
+							if(s.indexOf('up') !== -1) {
+								while(par && par.id !== $.jstree.root) {
+									c = 0;
+									for(i = 0, j = par.children.length; i < j; i++) {
+										c += m[par.children[i]].state[ t ? 'selected' : 'checked' ];
+									}
+									if(c === j) {
+										par.state[ t ? 'selected' : 'checked' ] = true;
+										this._data[ t ? 'core' : 'checkbox' ].selected.push(par.id);
+										tmp = this.get_node(par, true);
+										if(tmp && tmp.length) {
+											tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked');
+										}
+									}
+									else {
+										break;
+									}
+									par = this.get_node(par.parent);
+								}
+							}
+
+							// apply down (process .children separately?)
+							if(s.indexOf('down') !== -1 && dom.length) {
+								dom.find('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked').parent().attr('aria-selected', true);
+							}
+						}, this))
+					.on(this.settings.checkbox.tie_selection ? 'deselect_all.jstree' : 'uncheck_all.jstree', $.proxy(function (e, data) {
+							var obj = this.get_node($.jstree.root),
+								m = this._model.data,
+								i, j, tmp;
+							for(i = 0, j = obj.children_d.length; i < j; i++) {
+								tmp = m[obj.children_d[i]];
+								if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) {
+									tmp.original.state.undetermined = false;
+								}
+							}
+						}, this))
+					.on(this.settings.checkbox.tie_selection ? 'deselect_node.jstree' : 'uncheck_node.jstree', $.proxy(function (e, data) {
+							var obj = data.node,
+								dom = this.get_node(obj, true),
+								i, j, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection;
+							if(obj && obj.original && obj.original.state && obj.original.state.undetermined) {
+								obj.original.state.undetermined = false;
+							}
+
+							// apply down
+							if(s.indexOf('down') !== -1) {
+								for(i = 0, j = obj.children_d.length; i < j; i++) {
+									tmp = this._model.data[obj.children_d[i]];
+									tmp.state[ t ? 'selected' : 'checked' ] = false;
+									if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) {
+										tmp.original.state.undetermined = false;
+									}
+								}
+							}
+
+							// apply up
+							if(s.indexOf('up') !== -1) {
+								for(i = 0, j = obj.parents.length; i < j; i++) {
+									tmp = this._model.data[obj.parents[i]];
+									tmp.state[ t ? 'selected' : 'checked' ] = false;
+									if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) {
+										tmp.original.state.undetermined = false;
+									}
+									tmp = this.get_node(obj.parents[i], true);
+									if(tmp && tmp.length) {
+										tmp.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked');
+									}
+								}
+							}
+							tmp = [];
+							for(i = 0, j = this._data[ t ? 'core' : 'checkbox' ].selected.length; i < j; i++) {
+								// apply down + apply up
+								if(
+									(s.indexOf('down') === -1 || $.inArray(this._data[ t ? 'core' : 'checkbox' ].selected[i], obj.children_d) === -1) &&
+									(s.indexOf('up') === -1 || $.inArray(this._data[ t ? 'core' : 'checkbox' ].selected[i], obj.parents) === -1)
+								) {
+									tmp.push(this._data[ t ? 'core' : 'checkbox' ].selected[i]);
+								}
+							}
+							this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_unique(tmp);
+
+							// apply down (process .children separately?)
+							if(s.indexOf('down') !== -1 && dom.length) {
+								dom.find('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked').parent().attr('aria-selected', false);
+							}
+						}, this));
+			}
+			if(this.settings.checkbox.cascade.indexOf('up') !== -1) {
+				this.element
+					.on('delete_node.jstree', $.proxy(function (e, data) {
+							// apply up (whole handler)
+							var p = this.get_node(data.parent),
+								m = this._model.data,
+								i, j, c, tmp, t = this.settings.checkbox.tie_selection;
+							while(p && p.id !== $.jstree.root && !p.state[ t ? 'selected' : 'checked' ]) {
+								c = 0;
+								for(i = 0, j = p.children.length; i < j; i++) {
+									c += m[p.children[i]].state[ t ? 'selected' : 'checked' ];
+								}
+								if(j > 0 && c === j) {
+									p.state[ t ? 'selected' : 'checked' ] = true;
+									this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id);
+									tmp = this.get_node(p, true);
+									if(tmp && tmp.length) {
+										tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked');
+									}
+								}
+								else {
+									break;
+								}
+								p = this.get_node(p.parent);
+							}
+						}, this))
+					.on('move_node.jstree', $.proxy(function (e, data) {
+							// apply up (whole handler)
+							var is_multi = data.is_multi,
+								old_par = data.old_parent,
+								new_par = this.get_node(data.parent),
+								m = this._model.data,
+								p, c, i, j, tmp, t = this.settings.checkbox.tie_selection;
+							if(!is_multi) {
+								p = this.get_node(old_par);
+								while(p && p.id !== $.jstree.root && !p.state[ t ? 'selected' : 'checked' ]) {
+									c = 0;
+									for(i = 0, j = p.children.length; i < j; i++) {
+										c += m[p.children[i]].state[ t ? 'selected' : 'checked' ];
+									}
+									if(j > 0 && c === j) {
+										p.state[ t ? 'selected' : 'checked' ] = true;
+										this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id);
+										tmp = this.get_node(p, true);
+										if(tmp && tmp.length) {
+											tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked');
+										}
+									}
+									else {
+										break;
+									}
+									p = this.get_node(p.parent);
+								}
+							}
+							p = new_par;
+							while(p && p.id !== $.jstree.root) {
+								c = 0;
+								for(i = 0, j = p.children.length; i < j; i++) {
+									c += m[p.children[i]].state[ t ? 'selected' : 'checked' ];
+								}
+								if(c === j) {
+									if(!p.state[ t ? 'selected' : 'checked' ]) {
+										p.state[ t ? 'selected' : 'checked' ] = true;
+										this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id);
+										tmp = this.get_node(p, true);
+										if(tmp && tmp.length) {
+											tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked');
+										}
+									}
+								}
+								else {
+									if(p.state[ t ? 'selected' : 'checked' ]) {
+										p.state[ t ? 'selected' : 'checked' ] = false;
+										this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_remove_item(this._data[ t ? 'core' : 'checkbox' ].selected, p.id);
+										tmp = this.get_node(p, true);
+										if(tmp && tmp.length) {
+											tmp.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked');
+										}
+									}
+									else {
+										break;
+									}
+								}
+								p = this.get_node(p.parent);
+							}
+						}, this));
+			}
+		};
+		/**
+		 * set the undetermined state where and if necessary. Used internally.
+		 * @private
+		 * @name _undetermined()
+		 * @plugin checkbox
+		 */
+		this._undetermined = function () {
+			if(this.element === null) { return; }
+			var i, j, k, l, o = {}, m = this._model.data, t = this.settings.checkbox.tie_selection, s = this._data[ t ? 'core' : 'checkbox' ].selected, p = [], tt = this;
+			for(i = 0, j = s.length; i < j; i++) {
+				if(m[s[i]] && m[s[i]].parents) {
+					for(k = 0, l = m[s[i]].parents.length; k < l; k++) {
+						if(o[m[s[i]].parents[k]] === undefined && m[s[i]].parents[k] !== $.jstree.root) {
+							o[m[s[i]].parents[k]] = true;
+							p.push(m[s[i]].parents[k]);
+						}
+					}
+				}
+			}
+			// attempt for server side undetermined state
+			this.element.find('.jstree-closed').not(':has(.jstree-children)')
+				.each(function () {
+					var tmp = tt.get_node(this), tmp2;
+					if(!tmp.state.loaded) {
+						if(tmp.original && tmp.original.state && tmp.original.state.undetermined && tmp.original.state.undetermined === true) {
+							if(o[tmp.id] === undefined && tmp.id !== $.jstree.root) {
+								o[tmp.id] = true;
+								p.push(tmp.id);
+							}
+							for(k = 0, l = tmp.parents.length; k < l; k++) {
+								if(o[tmp.parents[k]] === undefined && tmp.parents[k] !== $.jstree.root) {
+									o[tmp.parents[k]] = true;
+									p.push(tmp.parents[k]);
+								}
+							}
+						}
+					}
+					else {
+						for(i = 0, j = tmp.children_d.length; i < j; i++) {
+							tmp2 = m[tmp.children_d[i]];
+							if(!tmp2.state.loaded && tmp2.original && tmp2.original.state && tmp2.original.state.undetermined && tmp2.original.state.undetermined === true) {
+								if(o[tmp2.id] === undefined && tmp2.id !== $.jstree.root) {
+									o[tmp2.id] = true;
+									p.push(tmp2.id);
+								}
+								for(k = 0, l = tmp2.parents.length; k < l; k++) {
+									if(o[tmp2.parents[k]] === undefined && tmp2.parents[k] !== $.jstree.root) {
+										o[tmp2.parents[k]] = true;
+										p.push(tmp2.parents[k]);
+									}
+								}
+							}
+						}
+					}
+				});
+
+			this.element.find('.jstree-undetermined').removeClass('jstree-undetermined');
+			for(i = 0, j = p.length; i < j; i++) {
+				if(!m[p[i]].state[ t ? 'selected' : 'checked' ]) {
+					s = this.get_node(p[i], true);
+					if(s && s.length) {
+						s.children('.jstree-anchor').children('.jstree-checkbox').addClass('jstree-undetermined');
+					}
+				}
+			}
+		};
+		this.redraw_node = function(obj, deep, is_callback, force_render) {
+			obj = parent.redraw_node.apply(this, arguments);
+			if(obj) {
+				var i, j, tmp = null, icon = null;
+				for(i = 0, j = obj.childNodes.length; i < j; i++) {
+					if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) {
+						tmp = obj.childNodes[i];
+						break;
+					}
+				}
+				if(tmp) {
+					if(!this.settings.checkbox.tie_selection && this._model.data[obj.id].state.checked) { tmp.className += ' jstree-checked'; }
+					icon = _i.cloneNode(false);
+					if(this._model.data[obj.id].state.checkbox_disabled) { icon.className += ' jstree-checkbox-disabled'; }
+					tmp.insertBefore(icon, tmp.childNodes[0]);
+				}
+			}
+			if(!is_callback && this.settings.checkbox.cascade.indexOf('undetermined') !== -1) {
+				if(this._data.checkbox.uto) { clearTimeout(this._data.checkbox.uto); }
+				this._data.checkbox.uto = setTimeout($.proxy(this._undetermined, this), 50);
+			}
+			return obj;
+		};
+		/**
+		 * show the node checkbox icons
+		 * @name show_checkboxes()
+		 * @plugin checkbox
+		 */
+		this.show_checkboxes = function () { this._data.core.themes.checkboxes = true; this.get_container_ul().removeClass("jstree-no-checkboxes"); };
+		/**
+		 * hide the node checkbox icons
+		 * @name hide_checkboxes()
+		 * @plugin checkbox
+		 */
+		this.hide_checkboxes = function () { this._data.core.themes.checkboxes = false; this.get_container_ul().addClass("jstree-no-checkboxes"); };
+		/**
+		 * toggle the node icons
+		 * @name toggle_checkboxes()
+		 * @plugin checkbox
+		 */
+		this.toggle_checkboxes = function () { if(this._data.core.themes.checkboxes) { this.hide_checkboxes(); } else { this.show_checkboxes(); } };
+		/**
+		 * checks if a node is in an undetermined state
+		 * @name is_undetermined(obj)
+		 * @param  {mixed} obj
+		 * @return {Boolean}
+		 */
+		this.is_undetermined = function (obj) {
+			obj = this.get_node(obj);
+			var s = this.settings.checkbox.cascade, i, j, t = this.settings.checkbox.tie_selection, d = this._data[ t ? 'core' : 'checkbox' ].selected, m = this._model.data;
+			if(!obj || obj.state[ t ? 'selected' : 'checked' ] === true || s.indexOf('undetermined') === -1 || (s.indexOf('down') === -1 && s.indexOf('up') === -1)) {
+				return false;
+			}
+			if(!obj.state.loaded && obj.original.state.undetermined === true) {
+				return true;
+			}
+			for(i = 0, j = obj.children_d.length; i < j; i++) {
+				if($.inArray(obj.children_d[i], d) !== -1 || (!m[obj.children_d[i]].state.loaded && m[obj.children_d[i]].original.state.undetermined)) {
+					return true;
+				}
+			}
+			return false;
+		};
+		/**
+		 * disable a node's checkbox
+		 * @name disable_checkbox(obj)
+		 * @param {mixed} obj an array can be used too
+		 * @trigger disable_checkbox.jstree
+		 * @plugin checkbox
+		 */
+		this.disable_checkbox = function (obj) {
+			var t1, t2, dom;
+			if($.isArray(obj)) {
+				obj = obj.slice();
+				for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+					this.disable_checkbox(obj[t1]);
+				}
+				return true;
+			}
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) {
+				return false;
+			}
+			dom = this.get_node(obj, true);
+			if(!obj.state.checkbox_disabled) {
+				obj.state.checkbox_disabled = true;
+				if(dom && dom.length) {
+					dom.children('.jstree-anchor').children('.jstree-checkbox').addClass('jstree-checkbox-disabled');
+				}
+				/**
+				 * triggered when an node's checkbox is disabled
+				 * @event
+				 * @name disable_checkbox.jstree
+				 * @param {Object} node
+				 * @plugin checkbox
+				 */
+				this.trigger('disable_checkbox', { 'node' : obj });
+			}
+		};
+		/**
+		 * enable a node's checkbox
+		 * @name disable_checkbox(obj)
+		 * @param {mixed} obj an array can be used too
+		 * @trigger enable_checkbox.jstree
+		 * @plugin checkbox
+		 */
+		this.enable_checkbox = function (obj) {
+			var t1, t2, dom;
+			if($.isArray(obj)) {
+				obj = obj.slice();
+				for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+					this.enable_checkbox(obj[t1]);
+				}
+				return true;
+			}
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) {
+				return false;
+			}
+			dom = this.get_node(obj, true);
+			if(obj.state.checkbox_disabled) {
+				obj.state.checkbox_disabled = false;
+				if(dom && dom.length) {
+					dom.children('.jstree-anchor').children('.jstree-checkbox').removeClass('jstree-checkbox-disabled');
+				}
+				/**
+				 * triggered when an node's checkbox is enabled
+				 * @event
+				 * @name enable_checkbox.jstree
+				 * @param {Object} node
+				 * @plugin checkbox
+				 */
+				this.trigger('enable_checkbox', { 'node' : obj });
+			}
+		};
+
+		this.activate_node = function (obj, e) {
+			if($(e.target).hasClass('jstree-checkbox-disabled')) {
+				return false;
+			}
+			if(this.settings.checkbox.tie_selection && (this.settings.checkbox.whole_node || $(e.target).hasClass('jstree-checkbox'))) {
+				e.ctrlKey = true;
+			}
+			if(this.settings.checkbox.tie_selection || (!this.settings.checkbox.whole_node && !$(e.target).hasClass('jstree-checkbox'))) {
+				return parent.activate_node.call(this, obj, e);
+			}
+			if(this.is_disabled(obj)) {
+				return false;
+			}
+			if(this.is_checked(obj)) {
+				this.uncheck_node(obj, e);
+			}
+			else {
+				this.check_node(obj, e);
+			}
+			this.trigger('activate_node', { 'node' : this.get_node(obj) });
+		};
+
+		/**
+		 * check a node (only if tie_selection in checkbox settings is false, otherwise select_node will be called internally)
+		 * @name check_node(obj)
+		 * @param {mixed} obj an array can be used to check multiple nodes
+		 * @trigger check_node.jstree
+		 * @plugin checkbox
+		 */
+		this.check_node = function (obj, e) {
+			if(this.settings.checkbox.tie_selection) { return this.select_node(obj, false, true, e); }
+			var dom, t1, t2, th;
+			if($.isArray(obj)) {
+				obj = obj.slice();
+				for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+					this.check_node(obj[t1], e);
+				}
+				return true;
+			}
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) {
+				return false;
+			}
+			dom = this.get_node(obj, true);
+			if(!obj.state.checked) {
+				obj.state.checked = true;
+				this._data.checkbox.selected.push(obj.id);
+				if(dom && dom.length) {
+					dom.children('.jstree-anchor').addClass('jstree-checked');
+				}
+				/**
+				 * triggered when an node is checked (only if tie_selection in checkbox settings is false)
+				 * @event
+				 * @name check_node.jstree
+				 * @param {Object} node
+				 * @param {Array} selected the current selection
+				 * @param {Object} event the event (if any) that triggered this check_node
+				 * @plugin checkbox
+				 */
+				this.trigger('check_node', { 'node' : obj, 'selected' : this._data.checkbox.selected, 'event' : e });
+			}
+		};
+		/**
+		 * uncheck a node (only if tie_selection in checkbox settings is false, otherwise deselect_node will be called internally)
+		 * @name uncheck_node(obj)
+		 * @param {mixed} obj an array can be used to uncheck multiple nodes
+		 * @trigger uncheck_node.jstree
+		 * @plugin checkbox
+		 */
+		this.uncheck_node = function (obj, e) {
+			if(this.settings.checkbox.tie_selection) { return this.deselect_node(obj, false, e); }
+			var t1, t2, dom;
+			if($.isArray(obj)) {
+				obj = obj.slice();
+				for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+					this.uncheck_node(obj[t1], e);
+				}
+				return true;
+			}
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) {
+				return false;
+			}
+			dom = this.get_node(obj, true);
+			if(obj.state.checked) {
+				obj.state.checked = false;
+				this._data.checkbox.selected = $.vakata.array_remove_item(this._data.checkbox.selected, obj.id);
+				if(dom.length) {
+					dom.children('.jstree-anchor').removeClass('jstree-checked');
+				}
+				/**
+				 * triggered when an node is unchecked (only if tie_selection in checkbox settings is false)
+				 * @event
+				 * @name uncheck_node.jstree
+				 * @param {Object} node
+				 * @param {Array} selected the current selection
+				 * @param {Object} event the event (if any) that triggered this uncheck_node
+				 * @plugin checkbox
+				 */
+				this.trigger('uncheck_node', { 'node' : obj, 'selected' : this._data.checkbox.selected, 'event' : e });
+			}
+		};
+		/**
+		 * checks all nodes in the tree (only if tie_selection in checkbox settings is false, otherwise select_all will be called internally)
+		 * @name check_all()
+		 * @trigger check_all.jstree, changed.jstree
+		 * @plugin checkbox
+		 */
+		this.check_all = function () {
+			if(this.settings.checkbox.tie_selection) { return this.select_all(); }
+			var tmp = this._data.checkbox.selected.concat([]), i, j;
+			this._data.checkbox.selected = this._model.data[$.jstree.root].children_d.concat();
+			for(i = 0, j = this._data.checkbox.selected.length; i < j; i++) {
+				if(this._model.data[this._data.checkbox.selected[i]]) {
+					this._model.data[this._data.checkbox.selected[i]].state.checked = true;
+				}
+			}
+			this.redraw(true);
+			/**
+			 * triggered when all nodes are checked (only if tie_selection in checkbox settings is false)
+			 * @event
+			 * @name check_all.jstree
+			 * @param {Array} selected the current selection
+			 * @plugin checkbox
+			 */
+			this.trigger('check_all', { 'selected' : this._data.checkbox.selected });
+		};
+		/**
+		 * uncheck all checked nodes (only if tie_selection in checkbox settings is false, otherwise deselect_all will be called internally)
+		 * @name uncheck_all()
+		 * @trigger uncheck_all.jstree
+		 * @plugin checkbox
+		 */
+		this.uncheck_all = function () {
+			if(this.settings.checkbox.tie_selection) { return this.deselect_all(); }
+			var tmp = this._data.checkbox.selected.concat([]), i, j;
+			for(i = 0, j = this._data.checkbox.selected.length; i < j; i++) {
+				if(this._model.data[this._data.checkbox.selected[i]]) {
+					this._model.data[this._data.checkbox.selected[i]].state.checked = false;
+				}
+			}
+			this._data.checkbox.selected = [];
+			this.element.find('.jstree-checked').removeClass('jstree-checked');
+			/**
+			 * triggered when all nodes are unchecked (only if tie_selection in checkbox settings is false)
+			 * @event
+			 * @name uncheck_all.jstree
+			 * @param {Object} node the previous selection
+			 * @param {Array} selected the current selection
+			 * @plugin checkbox
+			 */
+			this.trigger('uncheck_all', { 'selected' : this._data.checkbox.selected, 'node' : tmp });
+		};
+		/**
+		 * checks if a node is checked (if tie_selection is on in the settings this function will return the same as is_selected)
+		 * @name is_checked(obj)
+		 * @param  {mixed}  obj
+		 * @return {Boolean}
+		 * @plugin checkbox
+		 */
+		this.is_checked = function (obj) {
+			if(this.settings.checkbox.tie_selection) { return this.is_selected(obj); }
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) { return false; }
+			return obj.state.checked;
+		};
+		/**
+		 * get an array of all checked nodes (if tie_selection is on in the settings this function will return the same as get_selected)
+		 * @name get_checked([full])
+		 * @param  {mixed}  full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned
+		 * @return {Array}
+		 * @plugin checkbox
+		 */
+		this.get_checked = function (full) {
+			if(this.settings.checkbox.tie_selection) { return this.get_selected(full); }
+			return full ? $.map(this._data.checkbox.selected, $.proxy(function (i) { return this.get_node(i); }, this)) : this._data.checkbox.selected;
+		};
+		/**
+		 * get an array of all top level checked nodes (ignoring children of checked nodes) (if tie_selection is on in the settings this function will return the same as get_top_selected)
+		 * @name get_top_checked([full])
+		 * @param  {mixed}  full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned
+		 * @return {Array}
+		 * @plugin checkbox
+		 */
+		this.get_top_checked = function (full) {
+			if(this.settings.checkbox.tie_selection) { return this.get_top_selected(full); }
+			var tmp = this.get_checked(true),
+				obj = {}, i, j, k, l;
+			for(i = 0, j = tmp.length; i < j; i++) {
+				obj[tmp[i].id] = tmp[i];
+			}
+			for(i = 0, j = tmp.length; i < j; i++) {
+				for(k = 0, l = tmp[i].children_d.length; k < l; k++) {
+					if(obj[tmp[i].children_d[k]]) {
+						delete obj[tmp[i].children_d[k]];
+					}
+				}
+			}
+			tmp = [];
+			for(i in obj) {
+				if(obj.hasOwnProperty(i)) {
+					tmp.push(i);
+				}
+			}
+			return full ? $.map(tmp, $.proxy(function (i) { return this.get_node(i); }, this)) : tmp;
+		};
+		/**
+		 * get an array of all bottom level checked nodes (ignoring selected parents) (if tie_selection is on in the settings this function will return the same as get_bottom_selected)
+		 * @name get_bottom_checked([full])
+		 * @param  {mixed}  full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned
+		 * @return {Array}
+		 * @plugin checkbox
+		 */
+		this.get_bottom_checked = function (full) {
+			if(this.settings.checkbox.tie_selection) { return this.get_bottom_selected(full); }
+			var tmp = this.get_checked(true),
+				obj = [], i, j;
+			for(i = 0, j = tmp.length; i < j; i++) {
+				if(!tmp[i].children.length) {
+					obj.push(tmp[i].id);
+				}
+			}
+			return full ? $.map(obj, $.proxy(function (i) { return this.get_node(i); }, this)) : obj;
+		};
+		this.load_node = function (obj, callback) {
+			var k, l, i, j, c, tmp;
+			if(!$.isArray(obj) && !this.settings.checkbox.tie_selection) {
+				tmp = this.get_node(obj);
+				if(tmp && tmp.state.loaded) {
+					for(k = 0, l = tmp.children_d.length; k < l; k++) {
+						if(this._model.data[tmp.children_d[k]].state.checked) {
+							c = true;
+							this._data.checkbox.selected = $.vakata.array_remove_item(this._data.checkbox.selected, tmp.children_d[k]);
+						}
+					}
+				}
+			}
+			return parent.load_node.apply(this, arguments);
+		};
+		this.get_state = function () {
+			var state = parent.get_state.apply(this, arguments);
+			if(this.settings.checkbox.tie_selection) { return state; }
+			state.checkbox = this._data.checkbox.selected.slice();
+			return state;
+		};
+		this.set_state = function (state, callback) {
+			var res = parent.set_state.apply(this, arguments);
+			if(res && state.checkbox) {
+				if(!this.settings.checkbox.tie_selection) {
+					this.uncheck_all();
+					var _this = this;
+					$.each(state.checkbox, function (i, v) {
+						_this.check_node(v);
+					});
+				}
+				delete state.checkbox;
+				this.set_state(state, callback);
+				return false;
+			}
+			return res;
+		};
+		this.refresh = function (skip_loading, forget_state) {
+			if(!this.settings.checkbox.tie_selection) {
+				this._data.checkbox.selected = [];
+			}
+			return parent.refresh.apply(this, arguments);
+		};
+	};
+
+	// include the checkbox plugin by default
+	// $.jstree.defaults.plugins.push("checkbox");
+
+/**
+ * ### Conditionalselect plugin
+ *
+ * This plugin allows defining a callback to allow or deny node selection by user input (activate node method).
+ */
+
+	/**
+	 * a callback (function) which is invoked in the instance's scope and receives two arguments - the node and the event that triggered the `activate_node` call. Returning false prevents working with the node, returning true allows invoking activate_node. Defaults to returning `true`.
+	 * @name $.jstree.defaults.checkbox.visible
+	 * @plugin checkbox
+	 */
+	$.jstree.defaults.conditionalselect = function () { return true; };
+	$.jstree.plugins.conditionalselect = function (options, parent) {
+		// own function
+		this.activate_node = function (obj, e) {
+			if(this.settings.conditionalselect.call(this, this.get_node(obj), e)) {
+				parent.activate_node.call(this, obj, e);
+			}
+		};
+	};
+
+
+/**
+ * ### Contextmenu plugin
+ *
+ * Shows a context menu when a node is right-clicked.
+ */
+
+	/**
+	 * stores all defaults for the contextmenu plugin
+	 * @name $.jstree.defaults.contextmenu
+	 * @plugin contextmenu
+	 */
+	$.jstree.defaults.contextmenu = {
+		/**
+		 * a boolean indicating if the node should be selected when the context menu is invoked on it. Defaults to `true`.
+		 * @name $.jstree.defaults.contextmenu.select_node
+		 * @plugin contextmenu
+		 */
+		select_node : true,
+		/**
+		 * a boolean indicating if the menu should be shown aligned with the node. Defaults to `true`, otherwise the mouse coordinates are used.
+		 * @name $.jstree.defaults.contextmenu.show_at_node
+		 * @plugin contextmenu
+		 */
+		show_at_node : true,
+		/**
+		 * an object of actions, or a function that accepts a node and a callback function and calls the callback function with an object of actions available for that node (you can also return the items too).
+		 *
+		 * Each action consists of a key (a unique name) and a value which is an object with the following properties (only label and action are required):
+		 *
+		 * * `separator_before` - a boolean indicating if there should be a separator before this item
+		 * * `separator_after` - a boolean indicating if there should be a separator after this item
+		 * * `_disabled` - a boolean indicating if this action should be disabled
+		 * * `label` - a string - the name of the action (could be a function returning a string)
+		 * * `action` - a function to be executed if this item is chosen
+		 * * `icon` - a string, can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class
+		 * * `shortcut` - keyCode which will trigger the action if the menu is open (for example `113` for rename, which equals F2)
+		 * * `shortcut_label` - shortcut label (like for example `F2` for rename)
+		 *
+		 * @name $.jstree.defaults.contextmenu.items
+		 * @plugin contextmenu
+		 */
+		items : function (o, cb) { // Could be an object directly
+			return {
+				"create" : {
+					"separator_before"	: false,
+					"separator_after"	: true,
+					"_disabled"			: false, //(this.check("create_node", data.reference, {}, "last")),
+					"label"				: "Create",
+					"action"			: function (data) {
+						var inst = $.jstree.reference(data.reference),
+							obj = inst.get_node(data.reference);
+						inst.create_node(obj, {}, "last", function (new_node) {
+							setTimeout(function () { inst.edit(new_node); },0);
+						});
+					}
+				},
+				"rename" : {
+					"separator_before"	: false,
+					"separator_after"	: false,
+					"_disabled"			: false, //(this.check("rename_node", data.reference, this.get_parent(data.reference), "")),
+					"label"				: "Rename",
+					/*!
+					"shortcut"			: 113,
+					"shortcut_label"	: 'F2',
+					"icon"				: "glyphicon glyphicon-leaf",
+					*/
+					"action"			: function (data) {
+						var inst = $.jstree.reference(data.reference),
+							obj = inst.get_node(data.reference);
+						inst.edit(obj);
+					}
+				},
+				"remove" : {
+					"separator_before"	: false,
+					"icon"				: false,
+					"separator_after"	: false,
+					"_disabled"			: false, //(this.check("delete_node", data.reference, this.get_parent(data.reference), "")),
+					"label"				: "Delete",
+					"action"			: function (data) {
+						var inst = $.jstree.reference(data.reference),
+							obj = inst.get_node(data.reference);
+						if(inst.is_selected(obj)) {
+							inst.delete_node(inst.get_selected());
+						}
+						else {
+							inst.delete_node(obj);
+						}
+					}
+				},
+				"ccp" : {
+					"separator_before"	: true,
+					"icon"				: false,
+					"separator_after"	: false,
+					"label"				: "Edit",
+					"action"			: false,
+					"submenu" : {
+						"cut" : {
+							"separator_before"	: false,
+							"separator_after"	: false,
+							"label"				: "Cut",
+							"action"			: function (data) {
+								var inst = $.jstree.reference(data.reference),
+									obj = inst.get_node(data.reference);
+								if(inst.is_selected(obj)) {
+									inst.cut(inst.get_top_selected());
+								}
+								else {
+									inst.cut(obj);
+								}
+							}
+						},
+						"copy" : {
+							"separator_before"	: false,
+							"icon"				: false,
+							"separator_after"	: false,
+							"label"				: "Copy",
+							"action"			: function (data) {
+								var inst = $.jstree.reference(data.reference),
+									obj = inst.get_node(data.reference);
+								if(inst.is_selected(obj)) {
+									inst.copy(inst.get_top_selected());
+								}
+								else {
+									inst.copy(obj);
+								}
+							}
+						},
+						"paste" : {
+							"separator_before"	: false,
+							"icon"				: false,
+							"_disabled"			: function (data) {
+								return !$.jstree.reference(data.reference).can_paste();
+							},
+							"separator_after"	: false,
+							"label"				: "Paste",
+							"action"			: function (data) {
+								var inst = $.jstree.reference(data.reference),
+									obj = inst.get_node(data.reference);
+								inst.paste(obj);
+							}
+						}
+					}
+				}
+			};
+		}
+	};
+
+	$.jstree.plugins.contextmenu = function (options, parent) {
+		this.bind = function () {
+			parent.bind.call(this);
+
+			var last_ts = 0, cto = null, ex, ey;
+			this.element
+				.on("contextmenu.jstree", ".jstree-anchor", $.proxy(function (e, data) {
+						e.preventDefault();
+						last_ts = e.ctrlKey ? +new Date() : 0;
+						if(data || cto) {
+							last_ts = (+new Date()) + 10000;
+						}
+						if(cto) {
+							clearTimeout(cto);
+						}
+						if(!this.is_loading(e.currentTarget)) {
+							this.show_contextmenu(e.currentTarget, e.pageX, e.pageY, e);
+						}
+					}, this))
+				.on("click.jstree", ".jstree-anchor", $.proxy(function (e) {
+						if(this._data.contextmenu.visible && (!last_ts || (+new Date()) - last_ts > 250)) { // work around safari & macOS ctrl+click
+							$.vakata.context.hide();
+						}
+						last_ts = 0;
+					}, this))
+				.on("touchstart.jstree", ".jstree-anchor", function (e) {
+						if(!e.originalEvent || !e.originalEvent.changedTouches || !e.originalEvent.changedTouches[0]) {
+							return;
+						}
+						ex = e.pageX;
+						ey = e.pageY;
+						cto = setTimeout(function () {
+							$(e.currentTarget).trigger('contextmenu', true);
+						}, 750);
+					})
+				.on('touchmove.vakata.jstree', function (e) {
+						if(cto && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0] && (Math.abs(ex - e.pageX) > 50 || Math.abs(ey - e.pageY) > 50)) {
+							clearTimeout(cto);
+						}
+					})
+				.on('touchend.vakata.jstree', function (e) {
+						if(cto) {
+							clearTimeout(cto);
+						}
+					});
+
+			/*!
+			if(!('oncontextmenu' in document.body) && ('ontouchstart' in document.body)) {
+				var el = null, tm = null;
+				this.element
+					.on("touchstart", ".jstree-anchor", function (e) {
+						el = e.currentTarget;
+						tm = +new Date();
+						$(document).one("touchend", function (e) {
+							e.target = document.elementFromPoint(e.originalEvent.targetTouches[0].pageX - window.pageXOffset, e.originalEvent.targetTouches[0].pageY - window.pageYOffset);
+							e.currentTarget = e.target;
+							tm = ((+(new Date())) - tm);
+							if(e.target === el && tm > 600 && tm < 1000) {
+								e.preventDefault();
+								$(el).trigger('contextmenu', e);
+							}
+							el = null;
+							tm = null;
+						});
+					});
+			}
+			*/
+			$(document).on("context_hide.vakata.jstree", $.proxy(function () { this._data.contextmenu.visible = false; }, this));
+		};
+		this.teardown = function () {
+			if(this._data.contextmenu.visible) {
+				$.vakata.context.hide();
+			}
+			parent.teardown.call(this);
+		};
+
+		/**
+		 * prepare and show the context menu for a node
+		 * @name show_contextmenu(obj [, x, y])
+		 * @param {mixed} obj the node
+		 * @param {Number} x the x-coordinate relative to the document to show the menu at
+		 * @param {Number} y the y-coordinate relative to the document to show the menu at
+		 * @param {Object} e the event if available that triggered the contextmenu
+		 * @plugin contextmenu
+		 * @trigger show_contextmenu.jstree
+		 */
+		this.show_contextmenu = function (obj, x, y, e) {
+			obj = this.get_node(obj);
+			if(!obj || obj.id === $.jstree.root) { return false; }
+			var s = this.settings.contextmenu,
+				d = this.get_node(obj, true),
+				a = d.children(".jstree-anchor"),
+				o = false,
+				i = false;
+			if(s.show_at_node || x === undefined || y === undefined) {
+				o = a.offset();
+				x = o.left;
+				y = o.top + this._data.core.li_height;
+			}
+			if(this.settings.contextmenu.select_node && !this.is_selected(obj)) {
+				this.activate_node(obj, e);
+			}
+
+			i = s.items;
+			if($.isFunction(i)) {
+				i = i.call(this, obj, $.proxy(function (i) {
+					this._show_contextmenu(obj, x, y, i);
+				}, this));
+			}
+			if($.isPlainObject(i)) {
+				this._show_contextmenu(obj, x, y, i);
+			}
+		};
+		/**
+		 * show the prepared context menu for a node
+		 * @name _show_contextmenu(obj, x, y, i)
+		 * @param {mixed} obj the node
+		 * @param {Number} x the x-coordinate relative to the document to show the menu at
+		 * @param {Number} y the y-coordinate relative to the document to show the menu at
+		 * @param {Number} i the object of items to show
+		 * @plugin contextmenu
+		 * @trigger show_contextmenu.jstree
+		 * @private
+		 */
+		this._show_contextmenu = function (obj, x, y, i) {
+			var d = this.get_node(obj, true),
+				a = d.children(".jstree-anchor");
+			$(document).one("context_show.vakata.jstree", $.proxy(function (e, data) {
+				var cls = 'jstree-contextmenu jstree-' + this.get_theme() + '-contextmenu';
+				$(data.element).addClass(cls);
+			}, this));
+			this._data.contextmenu.visible = true;
+			$.vakata.context.show(a, { 'x' : x, 'y' : y }, i);
+			/**
+			 * triggered when the contextmenu is shown for a node
+			 * @event
+			 * @name show_contextmenu.jstree
+			 * @param {Object} node the node
+			 * @param {Number} x the x-coordinate of the menu relative to the document
+			 * @param {Number} y the y-coordinate of the menu relative to the document
+			 * @plugin contextmenu
+			 */
+			this.trigger('show_contextmenu', { "node" : obj, "x" : x, "y" : y });
+		};
+	};
+
+	// contextmenu helper
+	(function ($) {
+		var right_to_left = false,
+			vakata_context = {
+				element		: false,
+				reference	: false,
+				position_x	: 0,
+				position_y	: 0,
+				items		: [],
+				html		: "",
+				is_visible	: false
+			};
+
+		$.vakata.context = {
+			settings : {
+				hide_onmouseleave	: 0,
+				icons				: true
+			},
+			_trigger : function (event_name) {
+				$(document).triggerHandler("context_" + event_name + ".vakata", {
+					"reference"	: vakata_context.reference,
+					"element"	: vakata_context.element,
+					"position"	: {
+						"x" : vakata_context.position_x,
+						"y" : vakata_context.position_y
+					}
+				});
+			},
+			_execute : function (i) {
+				i = vakata_context.items[i];
+				return i && (!i._disabled || ($.isFunction(i._disabled) && !i._disabled({ "item" : i, "reference" : vakata_context.reference, "element" : vakata_context.element }))) && i.action ? i.action.call(null, {
+							"item"		: i,
+							"reference"	: vakata_context.reference,
+							"element"	: vakata_context.element,
+							"position"	: {
+								"x" : vakata_context.position_x,
+								"y" : vakata_context.position_y
+							}
+						}) : false;
+			},
+			_parse : function (o, is_callback) {
+				if(!o) { return false; }
+				if(!is_callback) {
+					vakata_context.html		= "";
+					vakata_context.items	= [];
+				}
+				var str = "",
+					sep = false,
+					tmp;
+
+				if(is_callback) { str += "<"+"ul>"; }
+				$.each(o, function (i, val) {
+					if(!val) { return true; }
+					vakata_context.items.push(val);
+					if(!sep && val.separator_before) {
+						str += "<"+"li class='vakata-context-separator'><"+"a href='#' " + ($.vakata.context.settings.icons ? '' : 'style="margin-left:0px;"') + ">&#160;<"+"/a><"+"/li>";
+					}
+					sep = false;
+					str += "<"+"li class='" + (val._class || "") + (val._disabled === true || ($.isFunction(val._disabled) && val._disabled({ "item" : val, "reference" : vakata_context.reference, "element" : vakata_context.element })) ? " vakata-contextmenu-disabled " : "") + "' "+(val.shortcut?" data-shortcut='"+val.shortcut+"' ":'')+">";
+					str += "<"+"a href='#' rel='" + (vakata_context.items.length - 1) + "'>";
+					if($.vakata.context.settings.icons) {
+						str += "<"+"i ";
+						if(val.icon) {
+							if(val.icon.indexOf("/") !== -1 || val.icon.indexOf(".") !== -1) { str += " style='background:url(\"" + val.icon + "\") center center no-repeat' "; }
+							else { str += " class='" + val.icon + "' "; }
+						}
+						str += "><"+"/i><"+"span class='vakata-contextmenu-sep'>&#160;<"+"/span>";
+					}
+					str += ($.isFunction(val.label) ? val.label({ "item" : i, "reference" : vakata_context.reference, "element" : vakata_context.element }) : val.label) + (val.shortcut?' <span class="vakata-contextmenu-shortcut vakata-contextmenu-shortcut-'+val.shortcut+'">'+ (val.shortcut_label || '') +'</span>':'') + "<"+"/a>";
+					if(val.submenu) {
+						tmp = $.vakata.context._parse(val.submenu, true);
+						if(tmp) { str += tmp; }
+					}
+					str += "<"+"/li>";
+					if(val.separator_after) {
+						str += "<"+"li class='vakata-context-separator'><"+"a href='#' " + ($.vakata.context.settings.icons ? '' : 'style="margin-left:0px;"') + ">&#160;<"+"/a><"+"/li>";
+						sep = true;
+					}
+				});
+				str  = str.replace(/<li class\='vakata-context-separator'\><\/li\>$/,"");
+				if(is_callback) { str += "</ul>"; }
+				/**
+				 * triggered on the document when the contextmenu is parsed (HTML is built)
+				 * @event
+				 * @plugin contextmenu
+				 * @name context_parse.vakata
+				 * @param {jQuery} reference the element that was right clicked
+				 * @param {jQuery} element the DOM element of the menu itself
+				 * @param {Object} position the x & y coordinates of the menu
+				 */
+				if(!is_callback) { vakata_context.html = str; $.vakata.context._trigger("parse"); }
+				return str.length > 10 ? str : false;
+			},
+			_show_submenu : function (o) {
+				o = $(o);
+				if(!o.length || !o.children("ul").length) { return; }
+				var e = o.children("ul"),
+					x = o.offset().left + o.outerWidth(),
+					y = o.offset().top,
+					w = e.width(),
+					h = e.height(),
+					dw = $(window).width() + $(window).scrollLeft(),
+					dh = $(window).height() + $(window).scrollTop();
+				// може да се спести е една проверка - дали няма някой от класовете вече нагоре
+				if(right_to_left) {
+					o[x - (w + 10 + o.outerWidth()) < 0 ? "addClass" : "removeClass"]("vakata-context-left");
+				}
+				else {
+					o[x + w + 10 > dw ? "addClass" : "removeClass"]("vakata-context-right");
+				}
+				if(y + h + 10 > dh) {
+					e.css("bottom","-1px");
+				}
+				e.show();
+			},
+			show : function (reference, position, data) {
+				var o, e, x, y, w, h, dw, dh, cond = true;
+				if(vakata_context.element && vakata_context.element.length) {
+					vakata_context.element.width('');
+				}
+				switch(cond) {
+					case (!position && !reference):
+						return false;
+					case (!!position && !!reference):
+						vakata_context.reference	= reference;
+						vakata_context.position_x	= position.x;
+						vakata_context.position_y	= position.y;
+						break;
+					case (!position && !!reference):
+						vakata_context.reference	= reference;
+						o = reference.offset();
+						vakata_context.position_x	= o.left + reference.outerHeight();
+						vakata_context.position_y	= o.top;
+						break;
+					case (!!position && !reference):
+						vakata_context.position_x	= position.x;
+						vakata_context.position_y	= position.y;
+						break;
+				}
+				if(!!reference && !data && $(reference).data('vakata_contextmenu')) {
+					data = $(reference).data('vakata_contextmenu');
+				}
+				if($.vakata.context._parse(data)) {
+					vakata_context.element.html(vakata_context.html);
+				}
+				if(vakata_context.items.length) {
+					vakata_context.element.appendTo("body");
+					e = vakata_context.element;
+					x = vakata_context.position_x;
+					y = vakata_context.position_y;
+					w = e.width();
+					h = e.height();
+					dw = $(window).width() + $(window).scrollLeft();
+					dh = $(window).height() + $(window).scrollTop();
+					if(right_to_left) {
+						x -= (e.outerWidth() - $(reference).outerWidth());
+						if(x < $(window).scrollLeft() + 20) {
+							x = $(window).scrollLeft() + 20;
+						}
+					}
+					if(x + w + 20 > dw) {
+						x = dw - (w + 20);
+					}
+					if(y + h + 20 > dh) {
+						y = dh - (h + 20);
+					}
+
+					vakata_context.element
+						.css({ "left" : x, "top" : y })
+						.show()
+						.find('a').first().focus().parent().addClass("vakata-context-hover");
+					vakata_context.is_visible = true;
+					/**
+					 * triggered on the document when the contextmenu is shown
+					 * @event
+					 * @plugin contextmenu
+					 * @name context_show.vakata
+					 * @param {jQuery} reference the element that was right clicked
+					 * @param {jQuery} element the DOM element of the menu itself
+					 * @param {Object} position the x & y coordinates of the menu
+					 */
+					$.vakata.context._trigger("show");
+				}
+			},
+			hide : function () {
+				if(vakata_context.is_visible) {
+					vakata_context.element.hide().find("ul").hide().end().find(':focus').blur().end().detach();
+					vakata_context.is_visible = false;
+					/**
+					 * triggered on the document when the contextmenu is hidden
+					 * @event
+					 * @plugin contextmenu
+					 * @name context_hide.vakata
+					 * @param {jQuery} reference the element that was right clicked
+					 * @param {jQuery} element the DOM element of the menu itself
+					 * @param {Object} position the x & y coordinates of the menu
+					 */
+					$.vakata.context._trigger("hide");
+				}
+			}
+		};
+		$(function () {
+			right_to_left = $("body").css("direction") === "rtl";
+			var to = false;
+
+			vakata_context.element = $("<ul class='vakata-context'></ul>");
+			vakata_context.element
+				.on("mouseenter", "li", function (e) {
+					e.stopImmediatePropagation();
+
+					if($.contains(this, e.relatedTarget)) {
+						// премахнато заради delegate mouseleave по-долу
+						// $(this).find(".vakata-context-hover").removeClass("vakata-context-hover");
+						return;
+					}
+
+					if(to) { clearTimeout(to); }
+					vakata_context.element.find(".vakata-context-hover").removeClass("vakata-context-hover").end();
+
+					$(this)
+						.siblings().find("ul").hide().end().end()
+						.parentsUntil(".vakata-context", "li").addBack().addClass("vakata-context-hover");
+					$.vakata.context._show_submenu(this);
+				})
+				// тестово - дали не натоварва?
+				.on("mouseleave", "li", function (e) {
+					if($.contains(this, e.relatedTarget)) { return; }
+					$(this).find(".vakata-context-hover").addBack().removeClass("vakata-context-hover");
+				})
+				.on("mouseleave", function (e) {
+					$(this).find(".vakata-context-hover").removeClass("vakata-context-hover");
+					if($.vakata.context.settings.hide_onmouseleave) {
+						to = setTimeout(
+							(function (t) {
+								return function () { $.vakata.context.hide(); };
+							}(this)), $.vakata.context.settings.hide_onmouseleave);
+					}
+				})
+				.on("click", "a", function (e) {
+					e.preventDefault();
+				//})
+				//.on("mouseup", "a", function (e) {
+					if(!$(this).blur().parent().hasClass("vakata-context-disabled") && $.vakata.context._execute($(this).attr("rel")) !== false) {
+						$.vakata.context.hide();
+					}
+				})
+				.on('keydown', 'a', function (e) {
+						var o = null;
+						switch(e.which) {
+							case 13:
+							case 32:
+								e.type = "mouseup";
+								e.preventDefault();
+								$(e.currentTarget).trigger(e);
+								break;
+							case 37:
+								if(vakata_context.is_visible) {
+									vakata_context.element.find(".vakata-context-hover").last().closest("li").first().find("ul").hide().find(".vakata-context-hover").removeClass("vakata-context-hover").end().end().children('a').focus();
+									e.stopImmediatePropagation();
+									e.preventDefault();
+								}
+								break;
+							case 38:
+								if(vakata_context.is_visible) {
+									o = vakata_context.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").prevAll("li:not(.vakata-context-separator)").first();
+									if(!o.length) { o = vakata_context.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").last(); }
+									o.addClass("vakata-context-hover").children('a').focus();
+									e.stopImmediatePropagation();
+									e.preventDefault();
+								}
+								break;
+							case 39:
+								if(vakata_context.is_visible) {
+									vakata_context.element.find(".vakata-context-hover").last().children("ul").show().children("li:not(.vakata-context-separator)").removeClass("vakata-context-hover").first().addClass("vakata-context-hover").children('a').focus();
+									e.stopImmediatePropagation();
+									e.preventDefault();
+								}
+								break;
+							case 40:
+								if(vakata_context.is_visible) {
+									o = vakata_context.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").nextAll("li:not(.vakata-context-separator)").first();
+									if(!o.length) { o = vakata_context.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").first(); }
+									o.addClass("vakata-context-hover").children('a').focus();
+									e.stopImmediatePropagation();
+									e.preventDefault();
+								}
+								break;
+							case 27:
+								$.vakata.context.hide();
+								e.preventDefault();
+								break;
+							default:
+								//console.log(e.which);
+								break;
+						}
+					})
+				.on('keydown', function (e) {
+					e.preventDefault();
+					var a = vakata_context.element.find('.vakata-contextmenu-shortcut-' + e.which).parent();
+					if(a.parent().not('.vakata-context-disabled')) {
+						a.click();
+					}
+				});
+
+			$(document)
+				.on("mousedown.vakata.jstree", function (e) {
+					if(vakata_context.is_visible && !$.contains(vakata_context.element[0], e.target)) {
+						$.vakata.context.hide();
+					}
+				})
+				.on("context_show.vakata.jstree", function (e, data) {
+					vakata_context.element.find("li:has(ul)").children("a").addClass("vakata-context-parent");
+					if(right_to_left) {
+						vakata_context.element.addClass("vakata-context-rtl").css("direction", "rtl");
+					}
+					// also apply a RTL class?
+					vakata_context.element.find("ul").hide().end();
+				});
+		});
+	}($));
+	// $.jstree.defaults.plugins.push("contextmenu");
+
+/**
+ * ### Drag'n'drop plugin
+ *
+ * Enables dragging and dropping of nodes in the tree, resulting in a move or copy operations.
+ */
+
+	/**
+	 * stores all defaults for the drag'n'drop plugin
+	 * @name $.jstree.defaults.dnd
+	 * @plugin dnd
+	 */
+	$.jstree.defaults.dnd = {
+		/**
+		 * a boolean indicating if a copy should be possible while dragging (by pressint the meta key or Ctrl). Defaults to `true`.
+		 * @name $.jstree.defaults.dnd.copy
+		 * @plugin dnd
+		 */
+		copy : true,
+		/**
+		 * a number indicating how long a node should remain hovered while dragging to be opened. Defaults to `500`.
+		 * @name $.jstree.defaults.dnd.open_timeout
+		 * @plugin dnd
+		 */
+		open_timeout : 500,
+		/**
+		 * a function invoked each time a node is about to be dragged, invoked in the tree's scope and receives the nodes about to be dragged as an argument (array) and the event that started the drag - return `false` to prevent dragging
+		 * @name $.jstree.defaults.dnd.is_draggable
+		 * @plugin dnd
+		 */
+		is_draggable : true,
+		/**
+		 * a boolean indicating if checks should constantly be made while the user is dragging the node (as opposed to checking only on drop), default is `true`
+		 * @name $.jstree.defaults.dnd.check_while_dragging
+		 * @plugin dnd
+		 */
+		check_while_dragging : true,
+		/**
+		 * a boolean indicating if nodes from this tree should only be copied with dnd (as opposed to moved), default is `false`
+		 * @name $.jstree.defaults.dnd.always_copy
+		 * @plugin dnd
+		 */
+		always_copy : false,
+		/**
+		 * when dropping a node "inside", this setting indicates the position the node should go to - it can be an integer or a string: "first" (same as 0) or "last", default is `0`
+		 * @name $.jstree.defaults.dnd.inside_pos
+		 * @plugin dnd
+		 */
+		inside_pos : 0,
+		/**
+		 * when starting the drag on a node that is selected this setting controls if all selected nodes are dragged or only the single node, default is `true`, which means all selected nodes are dragged when the drag is started on a selected node
+		 * @name $.jstree.defaults.dnd.drag_selection
+		 * @plugin dnd
+		 */
+		drag_selection : true,
+		/**
+		 * controls whether dnd works on touch devices. If left as boolean true dnd will work the same as in desktop browsers, which in some cases may impair scrolling. If set to boolean false dnd will not work on touch devices. There is a special third option - string "selected" which means only selected nodes can be dragged on touch devices.
+		 * @name $.jstree.defaults.dnd.touch
+		 * @plugin dnd
+		 */
+		touch : true,
+		/**
+		 * controls whether items can be dropped anywhere on the node, not just on the anchor, by default only the node anchor is a valid drop target. Works best with the wholerow plugin. If enabled on mobile depending on the interface it might be hard for the user to cancel the drop, since the whole tree container will be a valid drop target.
+		 * @name $.jstree.defaults.dnd.large_drop_target
+		 * @plugin dnd
+		 */
+		large_drop_target : false,
+		/**
+		 * controls whether a drag can be initiated from any part of the node and not just the text/icon part, works best with the wholerow plugin. Keep in mind it can cause problems with tree scrolling on mobile depending on the interface - in that case set the touch option to "selected".
+		 * @name $.jstree.defaults.dnd.large_drag_target
+		 * @plugin dnd
+		 */
+		large_drag_target : false
+	};
+	// TODO: now check works by checking for each node individually, how about max_children, unique, etc?
+	$.jstree.plugins.dnd = function (options, parent) {
+		this.bind = function () {
+			parent.bind.call(this);
+
+			this.element
+				.on('mousedown.jstree touchstart.jstree', this.settings.dnd.large_drag_target ? '.jstree-node' : '.jstree-anchor', $.proxy(function (e) {
+					if(this.settings.dnd.large_drag_target && $(e.target).closest('.jstree-node')[0] !== e.currentTarget) {
+						return true;
+					}
+					if(e.type === "touchstart" && (!this.settings.dnd.touch || (this.settings.dnd.touch === 'selected' && !$(e.currentTarget).closest('.jstree-node').children('.jstree-anchor').hasClass('jstree-clicked')))) {
+						return true;
+					}
+					var obj = this.get_node(e.target),
+						mlt = this.is_selected(obj) && this.settings.dnd.drag_selection ? this.get_top_selected().length : 1,
+						txt = (mlt > 1 ? mlt + ' ' + this.get_string('nodes') : this.get_text(e.currentTarget));
+					if(this.settings.core.force_text) {
+						txt = $.vakata.html.escape(txt);
+					}
+					if(obj && obj.id && obj.id !== $.jstree.root && (e.which === 1 || e.type === "touchstart") &&
+						(this.settings.dnd.is_draggable === true || ($.isFunction(this.settings.dnd.is_draggable) && this.settings.dnd.is_draggable.call(this, (mlt > 1 ? this.get_top_selected(true) : [obj]), e)))
+					) {
+						this.element.trigger('mousedown.jstree');
+						return $.vakata.dnd.start(e, { 'jstree' : true, 'origin' : this, 'obj' : this.get_node(obj,true), 'nodes' : mlt > 1 ? this.get_top_selected() : [obj.id] }, '<div id="jstree-dnd" class="jstree-' + this.get_theme() + ' jstree-' + this.get_theme() + '-' + this.get_theme_variant() + ' ' + ( this.settings.core.themes.responsive ? ' jstree-dnd-responsive' : '' ) + '"><i class="jstree-icon jstree-er"></i>' + txt + '<ins class="jstree-copy" style="display:none;">+</ins></div>');
+					}
+				}, this));
+		};
+	};
+
+	$(function() {
+		// bind only once for all instances
+		var lastmv = false,
+			laster = false,
+			lastev = false,
+			opento = false,
+			marker = $('<div id="jstree-marker">&#160;</div>').hide(); //.appendTo('body');
+
+		$(document)
+			.on('dnd_start.vakata.jstree', function (e, data) {
+				lastmv = false;
+				lastev = false;
+				if(!data || !data.data || !data.data.jstree) { return; }
+				marker.appendTo('body'); //.show();
+			})
+			.on('dnd_move.vakata.jstree', function (e, data) {
+				if(opento) { clearTimeout(opento); }
+				if(!data || !data.data || !data.data.jstree) { return; }
+
+				// if we are hovering the marker image do nothing (can happen on "inside" drags)
+				if(data.event.target.id && data.event.target.id === 'jstree-marker') {
+					return;
+				}
+				lastev = data.event;
+
+				var ins = $.jstree.reference(data.event.target),
+					ref = false,
+					off = false,
+					rel = false,
+					tmp, l, t, h, p, i, o, ok, t1, t2, op, ps, pr, ip, tm;
+				// if we are over an instance
+				if(ins && ins._data && ins._data.dnd) {
+					marker.attr('class', 'jstree-' + ins.get_theme() + ( ins.settings.core.themes.responsive ? ' jstree-dnd-responsive' : '' ));
+					data.helper
+						.children().attr('class', 'jstree-' + ins.get_theme() + ' jstree-' + ins.get_theme() + '-' + ins.get_theme_variant() + ' ' + ( ins.settings.core.themes.responsive ? ' jstree-dnd-responsive' : '' ))
+						.find('.jstree-copy').first()[ data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))) ? 'show' : 'hide' ]();
+
+
+					// if are hovering the container itself add a new root node
+					if( (data.event.target === ins.element[0] || data.event.target === ins.get_container_ul()[0]) && ins.get_container_ul().children().length === 0) {
+						ok = true;
+						for(t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) {
+							ok = ok && ins.check( (data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey)) ) ? "copy_node" : "move_node"), (data.data.origin && data.data.origin !== ins ? data.data.origin.get_node(data.data.nodes[t1]) : data.data.nodes[t1]), $.jstree.root, 'last', { 'dnd' : true, 'ref' : ins.get_node($.jstree.root), 'pos' : 'i', 'origin' : data.data.origin, 'is_multi' : (data.data.origin && data.data.origin !== ins), 'is_foreign' : (!data.data.origin) });
+							if(!ok) { break; }
+						}
+						if(ok) {
+							lastmv = { 'ins' : ins, 'par' : $.jstree.root, 'pos' : 'last' };
+							marker.hide();
+							data.helper.find('.jstree-icon').first().removeClass('jstree-er').addClass('jstree-ok');
+							return;
+						}
+					}
+					else {
+						// if we are hovering a tree node
+						ref = ins.settings.dnd.large_drop_target ? $(data.event.target).closest('.jstree-node').children('.jstree-anchor') : $(data.event.target).closest('.jstree-anchor');
+						if(ref && ref.length && ref.parent().is('.jstree-closed, .jstree-open, .jstree-leaf')) {
+							off = ref.offset();
+							rel = data.event.pageY - off.top;
+							h = ref.outerHeight();
+							if(rel < h / 3) {
+								o = ['b', 'i', 'a'];
+							}
+							else if(rel > h - h / 3) {
+								o = ['a', 'i', 'b'];
+							}
+							else {
+								o = rel > h / 2 ? ['i', 'a', 'b'] : ['i', 'b', 'a'];
+							}
+							$.each(o, function (j, v) {
+								switch(v) {
+									case 'b':
+										l = off.left - 6;
+										t = off.top;
+										p = ins.get_parent(ref);
+										i = ref.parent().index();
+										break;
+									case 'i':
+										ip = ins.settings.dnd.inside_pos;
+										tm = ins.get_node(ref.parent());
+										l = off.left - 2;
+										t = off.top + h / 2 + 1;
+										p = tm.id;
+										i = ip === 'first' ? 0 : (ip === 'last' ? tm.children.length : Math.min(ip, tm.children.length));
+										break;
+									case 'a':
+										l = off.left - 6;
+										t = off.top + h;
+										p = ins.get_parent(ref);
+										i = ref.parent().index() + 1;
+										break;
+								}
+								ok = true;
+								for(t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) {
+									op = data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))) ? "copy_node" : "move_node";
+									ps = i;
+									if(op === "move_node" && v === 'a' && (data.data.origin && data.data.origin === ins) && p === ins.get_parent(data.data.nodes[t1])) {
+										pr = ins.get_node(p);
+										if(ps > $.inArray(data.data.nodes[t1], pr.children)) {
+											ps -= 1;
+										}
+									}
+									ok = ok && ( (ins && ins.settings && ins.settings.dnd && ins.settings.dnd.check_while_dragging === false) || ins.check(op, (data.data.origin && data.data.origin !== ins ? data.data.origin.get_node(data.data.nodes[t1]) : data.data.nodes[t1]), p, ps, { 'dnd' : true, 'ref' : ins.get_node(ref.parent()), 'pos' : v, 'origin' : data.data.origin, 'is_multi' : (data.data.origin && data.data.origin !== ins), 'is_foreign' : (!data.data.origin) }) );
+									if(!ok) {
+										if(ins && ins.last_error) { laster = ins.last_error(); }
+										break;
+									}
+								}
+								if(v === 'i' && ref.parent().is('.jstree-closed') && ins.settings.dnd.open_timeout) {
+									opento = setTimeout((function (x, z) { return function () { x.open_node(z); }; }(ins, ref)), ins.settings.dnd.open_timeout);
+								}
+								if(ok) {
+									lastmv = { 'ins' : ins, 'par' : p, 'pos' : v === 'i' && ip === 'last' && i === 0 && !ins.is_loaded(tm) ? 'last' : i };
+									marker.css({ 'left' : l + 'px', 'top' : t + 'px' }).show();
+									data.helper.find('.jstree-icon').first().removeClass('jstree-er').addClass('jstree-ok');
+									laster = {};
+									o = true;
+									return false;
+								}
+							});
+							if(o === true) { return; }
+						}
+					}
+				}
+				lastmv = false;
+				data.helper.find('.jstree-icon').removeClass('jstree-ok').addClass('jstree-er');
+				marker.hide();
+			})
+			.on('dnd_scroll.vakata.jstree', function (e, data) {
+				if(!data || !data.data || !data.data.jstree) { return; }
+				marker.hide();
+				lastmv = false;
+				lastev = false;
+				data.helper.find('.jstree-icon').first().removeClass('jstree-ok').addClass('jstree-er');
+			})
+			.on('dnd_stop.vakata.jstree', function (e, data) {
+				if(opento) { clearTimeout(opento); }
+				if(!data || !data.data || !data.data.jstree) { return; }
+				marker.hide().detach();
+				var i, j, nodes = [];
+				if(lastmv) {
+					for(i = 0, j = data.data.nodes.length; i < j; i++) {
+						nodes[i] = data.data.origin ? data.data.origin.get_node(data.data.nodes[i]) : data.data.nodes[i];
+					}
+					lastmv.ins[ data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))) ? 'copy_node' : 'move_node' ](nodes, lastmv.par, lastmv.pos, false, false, false, data.data.origin);
+				}
+				else {
+					i = $(data.event.target).closest('.jstree');
+					if(i.length && laster && laster.error && laster.error === 'check') {
+						i = i.jstree(true);
+						if(i) {
+							i.settings.core.error.call(this, laster);
+						}
+					}
+				}
+				lastev = false;
+				lastmv = false;
+			})
+			.on('keyup.jstree keydown.jstree', function (e, data) {
+				data = $.vakata.dnd._get();
+				if(data && data.data && data.data.jstree) {
+					data.helper.find('.jstree-copy').first()[ data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (e.metaKey || e.ctrlKey))) ? 'show' : 'hide' ]();
+					if(lastev) {
+						lastev.metaKey = e.metaKey;
+						lastev.ctrlKey = e.ctrlKey;
+						$.vakata.dnd._trigger('move', lastev);
+					}
+				}
+			});
+	});
+
+	// helpers
+	(function ($) {
+		$.vakata.html = {
+			div : $('<div />'),
+			escape : function (str) {
+				return $.vakata.html.div.text(str).html();
+			},
+			strip : function (str) {
+				return $.vakata.html.div.empty().append($.parseHTML(str)).text();
+			}
+		};
+		// private variable
+		var vakata_dnd = {
+			element	: false,
+			target	: false,
+			is_down	: false,
+			is_drag	: false,
+			helper	: false,
+			helper_w: 0,
+			data	: false,
+			init_x	: 0,
+			init_y	: 0,
+			scroll_l: 0,
+			scroll_t: 0,
+			scroll_e: false,
+			scroll_i: false,
+			is_touch: false
+		};
+		$.vakata.dnd = {
+			settings : {
+				scroll_speed		: 10,
+				scroll_proximity	: 20,
+				helper_left			: 5,
+				helper_top			: 10,
+				threshold			: 5,
+				threshold_touch		: 50
+			},
+			_trigger : function (event_name, e) {
+				var data = $.vakata.dnd._get();
+				data.event = e;
+				$(document).triggerHandler("dnd_" + event_name + ".vakata", data);
+			},
+			_get : function () {
+				return {
+					"data"		: vakata_dnd.data,
+					"element"	: vakata_dnd.element,
+					"helper"	: vakata_dnd.helper
+				};
+			},
+			_clean : function () {
+				if(vakata_dnd.helper) { vakata_dnd.helper.remove(); }
+				if(vakata_dnd.scroll_i) { clearInterval(vakata_dnd.scroll_i); vakata_dnd.scroll_i = false; }
+				vakata_dnd = {
+					element	: false,
+					target	: false,
+					is_down	: false,
+					is_drag	: false,
+					helper	: false,
+					helper_w: 0,
+					data	: false,
+					init_x	: 0,
+					init_y	: 0,
+					scroll_l: 0,
+					scroll_t: 0,
+					scroll_e: false,
+					scroll_i: false,
+					is_touch: false
+				};
+				$(document).off("mousemove.vakata.jstree touchmove.vakata.jstree", $.vakata.dnd.drag);
+				$(document).off("mouseup.vakata.jstree touchend.vakata.jstree", $.vakata.dnd.stop);
+			},
+			_scroll : function (init_only) {
+				if(!vakata_dnd.scroll_e || (!vakata_dnd.scroll_l && !vakata_dnd.scroll_t)) {
+					if(vakata_dnd.scroll_i) { clearInterval(vakata_dnd.scroll_i); vakata_dnd.scroll_i = false; }
+					return false;
+				}
+				if(!vakata_dnd.scroll_i) {
+					vakata_dnd.scroll_i = setInterval($.vakata.dnd._scroll, 100);
+					return false;
+				}
+				if(init_only === true) { return false; }
+
+				var i = vakata_dnd.scroll_e.scrollTop(),
+					j = vakata_dnd.scroll_e.scrollLeft();
+				vakata_dnd.scroll_e.scrollTop(i + vakata_dnd.scroll_t * $.vakata.dnd.settings.scroll_speed);
+				vakata_dnd.scroll_e.scrollLeft(j + vakata_dnd.scroll_l * $.vakata.dnd.settings.scroll_speed);
+				if(i !== vakata_dnd.scroll_e.scrollTop() || j !== vakata_dnd.scroll_e.scrollLeft()) {
+					/**
+					 * triggered on the document when a drag causes an element to scroll
+					 * @event
+					 * @plugin dnd
+					 * @name dnd_scroll.vakata
+					 * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start
+					 * @param {DOM} element the DOM element being dragged
+					 * @param {jQuery} helper the helper shown next to the mouse
+					 * @param {jQuery} event the element that is scrolling
+					 */
+					$.vakata.dnd._trigger("scroll", vakata_dnd.scroll_e);
+				}
+			},
+			start : function (e, data, html) {
+				if(e.type === "touchstart" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) {
+					e.pageX = e.originalEvent.changedTouches[0].pageX;
+					e.pageY = e.originalEvent.changedTouches[0].pageY;
+					e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset);
+				}
+				if(vakata_dnd.is_drag) { $.vakata.dnd.stop({}); }
+				try {
+					e.currentTarget.unselectable = "on";
+					e.currentTarget.onselectstart = function() { return false; };
+					if(e.currentTarget.style) { e.currentTarget.style.MozUserSelect = "none"; }
+				} catch(ignore) { }
+				vakata_dnd.init_x	= e.pageX;
+				vakata_dnd.init_y	= e.pageY;
+				vakata_dnd.data		= data;
+				vakata_dnd.is_down	= true;
+				vakata_dnd.element	= e.currentTarget;
+				vakata_dnd.target	= e.target;
+				vakata_dnd.is_touch	= e.type === "touchstart";
+				if(html !== false) {
+					vakata_dnd.helper = $("<div id='vakata-dnd'></div>").html(html).css({
+						"display"		: "block",
+						"margin"		: "0",
+						"padding"		: "0",
+						"position"		: "absolute",
+						"top"			: "-2000px",
+						"lineHeight"	: "16px",
+						"zIndex"		: "10000"
+					});
+				}
+				$(document).on("mousemove.vakata.jstree touchmove.vakata.jstree", $.vakata.dnd.drag);
+				$(document).on("mouseup.vakata.jstree touchend.vakata.jstree", $.vakata.dnd.stop);
+				return false;
+			},
+			drag : function (e) {
+				if(e.type === "touchmove" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) {
+					e.pageX = e.originalEvent.changedTouches[0].pageX;
+					e.pageY = e.originalEvent.changedTouches[0].pageY;
+					e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset);
+				}
+				if(!vakata_dnd.is_down) { return; }
+				if(!vakata_dnd.is_drag) {
+					if(
+						Math.abs(e.pageX - vakata_dnd.init_x) > (vakata_dnd.is_touch ? $.vakata.dnd.settings.threshold_touch : $.vakata.dnd.settings.threshold) ||
+						Math.abs(e.pageY - vakata_dnd.init_y) > (vakata_dnd.is_touch ? $.vakata.dnd.settings.threshold_touch : $.vakata.dnd.settings.threshold)
+					) {
+						if(vakata_dnd.helper) {
+							vakata_dnd.helper.appendTo("body");
+							vakata_dnd.helper_w = vakata_dnd.helper.outerWidth();
+						}
+						vakata_dnd.is_drag = true;
+						/**
+						 * triggered on the document when a drag starts
+						 * @event
+						 * @plugin dnd
+						 * @name dnd_start.vakata
+						 * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start
+						 * @param {DOM} element the DOM element being dragged
+						 * @param {jQuery} helper the helper shown next to the mouse
+						 * @param {Object} event the event that caused the start (probably mousemove)
+						 */
+						$.vakata.dnd._trigger("start", e);
+					}
+					else { return; }
+				}
+
+				var d  = false, w  = false,
+					dh = false, wh = false,
+					dw = false, ww = false,
+					dt = false, dl = false,
+					ht = false, hl = false;
+
+				vakata_dnd.scroll_t = 0;
+				vakata_dnd.scroll_l = 0;
+				vakata_dnd.scroll_e = false;
+				$($(e.target).parentsUntil("body").addBack().get().reverse())
+					.filter(function () {
+						return	(/^auto|scroll$/).test($(this).css("overflow")) &&
+								(this.scrollHeight > this.offsetHeight || this.scrollWidth > this.offsetWidth);
+					})
+					.each(function () {
+						var t = $(this), o = t.offset();
+						if(this.scrollHeight > this.offsetHeight) {
+							if(o.top + t.height() - e.pageY < $.vakata.dnd.settings.scroll_proximity)	{ vakata_dnd.scroll_t = 1; }
+							if(e.pageY - o.top < $.vakata.dnd.settings.scroll_proximity)				{ vakata_dnd.scroll_t = -1; }
+						}
+						if(this.scrollWidth > this.offsetWidth) {
+							if(o.left + t.width() - e.pageX < $.vakata.dnd.settings.scroll_proximity)	{ vakata_dnd.scroll_l = 1; }
+							if(e.pageX - o.left < $.vakata.dnd.settings.scroll_proximity)				{ vakata_dnd.scroll_l = -1; }
+						}
+						if(vakata_dnd.scroll_t || vakata_dnd.scroll_l) {
+							vakata_dnd.scroll_e = $(this);
+							return false;
+						}
+					});
+
+				if(!vakata_dnd.scroll_e) {
+					d  = $(document); w = $(window);
+					dh = d.height(); wh = w.height();
+					dw = d.width(); ww = w.width();
+					dt = d.scrollTop(); dl = d.scrollLeft();
+					if(dh > wh && e.pageY - dt < $.vakata.dnd.settings.scroll_proximity)		{ vakata_dnd.scroll_t = -1;  }
+					if(dh > wh && wh - (e.pageY - dt) < $.vakata.dnd.settings.scroll_proximity)	{ vakata_dnd.scroll_t = 1; }
+					if(dw > ww && e.pageX - dl < $.vakata.dnd.settings.scroll_proximity)		{ vakata_dnd.scroll_l = -1; }
+					if(dw > ww && ww - (e.pageX - dl) < $.vakata.dnd.settings.scroll_proximity)	{ vakata_dnd.scroll_l = 1; }
+					if(vakata_dnd.scroll_t || vakata_dnd.scroll_l) {
+						vakata_dnd.scroll_e = d;
+					}
+				}
+				if(vakata_dnd.scroll_e) { $.vakata.dnd._scroll(true); }
+
+				if(vakata_dnd.helper) {
+					ht = parseInt(e.pageY + $.vakata.dnd.settings.helper_top, 10);
+					hl = parseInt(e.pageX + $.vakata.dnd.settings.helper_left, 10);
+					if(dh && ht + 25 > dh) { ht = dh - 50; }
+					if(dw && hl + vakata_dnd.helper_w > dw) { hl = dw - (vakata_dnd.helper_w + 2); }
+					vakata_dnd.helper.css({
+						left	: hl + "px",
+						top		: ht + "px"
+					});
+				}
+				/**
+				 * triggered on the document when a drag is in progress
+				 * @event
+				 * @plugin dnd
+				 * @name dnd_move.vakata
+				 * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start
+				 * @param {DOM} element the DOM element being dragged
+				 * @param {jQuery} helper the helper shown next to the mouse
+				 * @param {Object} event the event that caused this to trigger (most likely mousemove)
+				 */
+				$.vakata.dnd._trigger("move", e);
+				return false;
+			},
+			stop : function (e) {
+				if(e.type === "touchend" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) {
+					e.pageX = e.originalEvent.changedTouches[0].pageX;
+					e.pageY = e.originalEvent.changedTouches[0].pageY;
+					e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset);
+				}
+				if(vakata_dnd.is_drag) {
+					/**
+					 * triggered on the document when a drag stops (the dragged element is dropped)
+					 * @event
+					 * @plugin dnd
+					 * @name dnd_stop.vakata
+					 * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start
+					 * @param {DOM} element the DOM element being dragged
+					 * @param {jQuery} helper the helper shown next to the mouse
+					 * @param {Object} event the event that caused the stop
+					 */
+					$.vakata.dnd._trigger("stop", e);
+				}
+				else {
+					if(e.type === "touchend" && e.target === vakata_dnd.target) {
+						var to = setTimeout(function () { $(e.target).click(); }, 100);
+						$(e.target).one('click', function() { if(to) { clearTimeout(to); } });
+					}
+				}
+				$.vakata.dnd._clean();
+				return false;
+			}
+		};
+	}($));
+
+	// include the dnd plugin by default
+	// $.jstree.defaults.plugins.push("dnd");
+
+
+/**
+ * ### Massload plugin
+ *
+ * Adds massload functionality to jsTree, so that multiple nodes can be loaded in a single request (only useful with lazy loading).
+ */
+
+	/**
+	 * massload configuration
+	 *
+	 * It is possible to set this to a standard jQuery-like AJAX config.
+	 * In addition to the standard jQuery ajax options here you can supply functions for `data` and `url`, the functions will be run in the current instance's scope and a param will be passed indicating which node IDs need to be loaded, the return value of those functions will be used.
+	 *
+	 * You can also set this to a function, that function will receive the node IDs being loaded as argument and a second param which is a function (callback) which should be called with the result.
+	 *
+	 * Both the AJAX and the function approach rely on the same return value - an object where the keys are the node IDs, and the value is the children of that node as an array.
+	 *
+	 *	{
+	 *		"id1" : [{ "text" : "Child of ID1", "id" : "c1" }, { "text" : "Another child of ID1", "id" : "c2" }],
+	 *		"id2" : [{ "text" : "Child of ID2", "id" : "c3" }]
+	 *	}
+	 * 
+	 * @name $.jstree.defaults.massload
+	 * @plugin massload
+	 */
+	$.jstree.defaults.massload = null;
+	$.jstree.plugins.massload = function (options, parent) {
+		this.init = function (el, options) {
+			parent.init.call(this, el, options);
+			this._data.massload = {};
+		};
+		this._load_nodes = function (nodes, callback, is_callback) {
+			var s = this.settings.massload;
+			if(is_callback && !$.isEmptyObject(this._data.massload)) {
+				return parent._load_nodes.call(this, nodes, callback, is_callback);
+			}
+			if($.isFunction(s)) {
+				return s.call(this, nodes, $.proxy(function (data) {
+					if(data) {
+						for(var i in data) {
+							if(data.hasOwnProperty(i)) {
+								this._data.massload[i] = data[i];
+							}
+						}
+					}
+					parent._load_nodes.call(this, nodes, callback, is_callback);
+				}, this));
+			}
+			if(typeof s === 'object' && s && s.url) {
+				s = $.extend(true, {}, s);
+				if($.isFunction(s.url)) {
+					s.url = s.url.call(this, nodes);
+				}
+				if($.isFunction(s.data)) {
+					s.data = s.data.call(this, nodes);
+				}
+				return $.ajax(s)
+					.done($.proxy(function (data,t,x) {
+							if(data) {
+								for(var i in data) {
+									if(data.hasOwnProperty(i)) {
+										this._data.massload[i] = data[i];
+									}
+								}
+							}
+							parent._load_nodes.call(this, nodes, callback, is_callback);
+						}, this))
+					.fail($.proxy(function (f) {
+							parent._load_nodes.call(this, nodes, callback, is_callback);
+						}, this));
+			}
+			return parent._load_nodes.call(this, nodes, callback, is_callback);
+		};
+		this._load_node = function (obj, callback) {
+			var d = this._data.massload[obj.id];
+			if(d) {
+				return this[typeof d === 'string' ? '_append_html_data' : '_append_json_data'](obj, typeof d === 'string' ? $($.parseHTML(d)).filter(function () { return this.nodeType !== 3; }) : d, function (status) {
+					callback.call(this, status);
+					delete this._data.massload[obj.id];
+				});
+			}
+			return parent._load_node.call(this, obj, callback);
+		};
+	};
+
+/**
+ * ### Search plugin
+ *
+ * Adds search functionality to jsTree.
+ */
+
+	/**
+	 * stores all defaults for the search plugin
+	 * @name $.jstree.defaults.search
+	 * @plugin search
+	 */
+	$.jstree.defaults.search = {
+		/**
+		 * a jQuery-like AJAX config, which jstree uses if a server should be queried for results. 
+		 * 
+		 * A `str` (which is the search string) parameter will be added with the request, an optional `inside` parameter will be added if the search is limited to a node id. The expected result is a JSON array with nodes that need to be opened so that matching nodes will be revealed.
+		 * Leave this setting as `false` to not query the server. You can also set this to a function, which will be invoked in the instance's scope and receive 3 parameters - the search string, the callback to call with the array of nodes to load, and the optional node ID to limit the search to 
+		 * @name $.jstree.defaults.search.ajax
+		 * @plugin search
+		 */
+		ajax : false,
+		/**
+		 * Indicates if the search should be fuzzy or not (should `chnd3` match `child node 3`). Default is `false`.
+		 * @name $.jstree.defaults.search.fuzzy
+		 * @plugin search
+		 */
+		fuzzy : false,
+		/**
+		 * Indicates if the search should be case sensitive. Default is `false`.
+		 * @name $.jstree.defaults.search.case_sensitive
+		 * @plugin search
+		 */
+		case_sensitive : false,
+		/**
+		 * Indicates if the tree should be filtered (by default) to show only matching nodes (keep in mind this can be a heavy on large trees in old browsers). 
+		 * This setting can be changed at runtime when calling the search method. Default is `false`.
+		 * @name $.jstree.defaults.search.show_only_matches
+		 * @plugin search
+		 */
+		show_only_matches : false,
+		/**
+		 * Indicates if the children of matched element are shown (when show_only_matches is true)
+		 * This setting can be changed at runtime when calling the search method. Default is `false`.
+		 * @name $.jstree.defaults.search.show_only_matches_children
+		 * @plugin search
+		 */
+		show_only_matches_children : false,
+		/**
+		 * Indicates if all nodes opened to reveal the search result, should be closed when the search is cleared or a new search is performed. Default is `true`.
+		 * @name $.jstree.defaults.search.close_opened_onclear
+		 * @plugin search
+		 */
+		close_opened_onclear : true,
+		/**
+		 * Indicates if only leaf nodes should be included in search results. Default is `false`.
+		 * @name $.jstree.defaults.search.search_leaves_only
+		 * @plugin search
+		 */
+		search_leaves_only : false,
+		/**
+		 * If set to a function it wil be called in the instance's scope with two arguments - search string and node (where node will be every node in the structure, so use with caution).
+		 * If the function returns a truthy value the node will be considered a match (it might not be displayed if search_only_leaves is set to true and the node is not a leaf). Default is `false`.
+		 * @name $.jstree.defaults.search.search_callback
+		 * @plugin search
+		 */
+		search_callback : false
+	};
+
+	$.jstree.plugins.search = function (options, parent) {
+		this.bind = function () {
+			parent.bind.call(this);
+
+			this._data.search.str = "";
+			this._data.search.dom = $();
+			this._data.search.res = [];
+			this._data.search.opn = [];
+			this._data.search.som = false;
+			this._data.search.smc = false;
+			this._data.search.hdn = [];
+
+			this.element
+				.on("search.jstree", $.proxy(function (e, data) {
+						if(this._data.search.som && data.res.length) {
+							var m = this._model.data, i, j, p = [];
+							for(i = 0, j = data.res.length; i < j; i++) {
+								if(m[data.res[i]] && !m[data.res[i]].state.hidden) {
+									p.push(data.res[i]);
+									p = p.concat(m[data.res[i]].parents);
+									if(this._data.search.smc) {
+										p = p.concat(m[data.res[i]].children_d);
+									}
+								}
+							}
+							p = $.vakata.array_remove_item($.vakata.array_unique(p), $.jstree.root);
+							this._data.search.hdn = this.hide_all(true);
+							this.show_node(p);
+						}
+					}, this))
+				.on("clear_search.jstree", $.proxy(function (e, data) {
+						if(this._data.search.som && data.res.length) {
+							this.show_node(this._data.search.hdn);
+						}
+					}, this));
+		};
+		/**
+		 * used to search the tree nodes for a given string
+		 * @name search(str [, skip_async])
+		 * @param {String} str the search string
+		 * @param {Boolean} skip_async if set to true server will not be queried even if configured
+		 * @param {Boolean} show_only_matches if set to true only matching nodes will be shown (keep in mind this can be very slow on large trees or old browsers)
+		 * @param {mixed} inside an optional node to whose children to limit the search
+		 * @param {Boolean} append if set to true the results of this search are appended to the previous search
+		 * @plugin search
+		 * @trigger search.jstree
+		 */
+		this.search = function (str, skip_async, show_only_matches, inside, append, show_only_matches_children) {
+			if(str === false || $.trim(str.toString()) === "") {
+				return this.clear_search();
+			}
+			inside = this.get_node(inside);
+			inside = inside && inside.id ? inside.id : null;
+			str = str.toString();
+			var s = this.settings.search,
+				a = s.ajax ? s.ajax : false,
+				m = this._model.data,
+				f = null,
+				r = [],
+				p = [], i, j;
+			if(this._data.search.res.length && !append) {
+				this.clear_search();
+			}
+			if(show_only_matches === undefined) {
+				show_only_matches = s.show_only_matches;
+			}
+			if(show_only_matches_children === undefined) {
+				show_only_matches_children = s.show_only_matches_children;
+			}
+			if(!skip_async && a !== false) {
+				if($.isFunction(a)) {
+					return a.call(this, str, $.proxy(function (d) {
+							if(d && d.d) { d = d.d; }
+							this._load_nodes(!$.isArray(d) ? [] : $.vakata.array_unique(d), function () {
+								this.search(str, true, show_only_matches, inside, append);
+							}, true);
+						}, this), inside);
+				}
+				else {
+					a = $.extend({}, a);
+					if(!a.data) { a.data = {}; }
+					a.data.str = str;
+					if(inside) {
+						a.data.inside = inside;
+					}
+					return $.ajax(a)
+						.fail($.proxy(function () {
+							this._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'search', 'id' : 'search_01', 'reason' : 'Could not load search parents', 'data' : JSON.stringify(a) };
+							this.settings.core.error.call(this, this._data.core.last_error);
+						}, this))
+						.done($.proxy(function (d) {
+							if(d && d.d) { d = d.d; }
+							this._load_nodes(!$.isArray(d) ? [] : $.vakata.array_unique(d), function () {
+								this.search(str, true, show_only_matches, inside, append);
+							}, true);
+						}, this));
+				}
+			}
+			if(!append) {
+				this._data.search.str = str;
+				this._data.search.dom = $();
+				this._data.search.res = [];
+				this._data.search.opn = [];
+				this._data.search.som = show_only_matches;
+				this._data.search.smc = show_only_matches_children;
+			}
+
+			f = new $.vakata.search(str, true, { caseSensitive : s.case_sensitive, fuzzy : s.fuzzy });
+			$.each(m[inside ? inside : $.jstree.root].children_d, function (ii, i) {
+				var v = m[i];
+				if(v.text && (!s.search_leaves_only || (v.state.loaded && v.children.length === 0)) && ( (s.search_callback && s.search_callback.call(this, str, v)) || (!s.search_callback && f.search(v.text).isMatch) ) ) {
+					r.push(i);
+					p = p.concat(v.parents);
+				}
+			});
+			if(r.length) {
+				p = $.vakata.array_unique(p);
+				for(i = 0, j = p.length; i < j; i++) {
+					if(p[i] !== $.jstree.root && m[p[i]] && this.open_node(p[i], null, 0) === true) {
+						this._data.search.opn.push(p[i]);
+					}
+				}
+				if(!append) {
+					this._data.search.dom = $(this.element[0].querySelectorAll('#' + $.map(r, function (v) { return "0123456789".indexOf(v[0]) !== -1 ? '\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\$&') : v.replace($.jstree.idregex,'\\$&'); }).join(', #')));
+					this._data.search.res = r;
+				}
+				else {
+					this._data.search.dom = this._data.search.dom.add($(this.element[0].querySelectorAll('#' + $.map(r, function (v) { return "0123456789".indexOf(v[0]) !== -1 ? '\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\$&') : v.replace($.jstree.idregex,'\\$&'); }).join(', #'))));
+					this._data.search.res = $.vakata.array_unique(this._data.search.res.concat(r));
+				}
+				this._data.search.dom.children(".jstree-anchor").addClass('jstree-search');
+			}
+			/**
+			 * triggered after search is complete
+			 * @event
+			 * @name search.jstree
+			 * @param {jQuery} nodes a jQuery collection of matching nodes
+			 * @param {String} str the search string
+			 * @param {Array} res a collection of objects represeing the matching nodes
+			 * @plugin search
+			 */
+			this.trigger('search', { nodes : this._data.search.dom, str : str, res : this._data.search.res, show_only_matches : show_only_matches });
+		};
+		/**
+		 * used to clear the last search (removes classes and shows all nodes if filtering is on)
+		 * @name clear_search()
+		 * @plugin search
+		 * @trigger clear_search.jstree
+		 */
+		this.clear_search = function () {
+			if(this.settings.search.close_opened_onclear) {
+				this.close_node(this._data.search.opn, 0);
+			}
+			/**
+			 * triggered after search is complete
+			 * @event
+			 * @name clear_search.jstree
+			 * @param {jQuery} nodes a jQuery collection of matching nodes (the result from the last search)
+			 * @param {String} str the search string (the last search string)
+			 * @param {Array} res a collection of objects represeing the matching nodes (the result from the last search)
+			 * @plugin search
+			 */
+			this.trigger('clear_search', { 'nodes' : this._data.search.dom, str : this._data.search.str, res : this._data.search.res });
+			if(this._data.search.res.length) {
+				this._data.search.dom = $(this.element[0].querySelectorAll('#' + $.map(this._data.search.res, function (v) {
+					return "0123456789".indexOf(v[0]) !== -1 ? '\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\$&') : v.replace($.jstree.idregex,'\\$&');
+				}).join(', #')));
+				this._data.search.dom.children(".jstree-anchor").removeClass("jstree-search");
+			}
+			this._data.search.str = "";
+			this._data.search.res = [];
+			this._data.search.opn = [];
+			this._data.search.dom = $();
+		};
+
+		this.redraw_node = function(obj, deep, callback, force_render) {
+			obj = parent.redraw_node.apply(this, arguments);
+			if(obj) {
+				if($.inArray(obj.id, this._data.search.res) !== -1) {
+					var i, j, tmp = null;
+					for(i = 0, j = obj.childNodes.length; i < j; i++) {
+						if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) {
+							tmp = obj.childNodes[i];
+							break;
+						}
+					}
+					if(tmp) {
+						tmp.className += ' jstree-search';
+					}
+				}
+			}
+			return obj;
+		};
+	};
+
+	// helpers
+	(function ($) {
+		// from http://kiro.me/projects/fuse.html
+		$.vakata.search = function(pattern, txt, options) {
+			options = options || {};
+			options = $.extend({}, $.vakata.search.defaults, options);
+			if(options.fuzzy !== false) {
+				options.fuzzy = true;
+			}
+			pattern = options.caseSensitive ? pattern : pattern.toLowerCase();
+			var MATCH_LOCATION	= options.location,
+				MATCH_DISTANCE	= options.distance,
+				MATCH_THRESHOLD	= options.threshold,
+				patternLen = pattern.length,
+				matchmask, pattern_alphabet, match_bitapScore, search;
+			if(patternLen > 32) {
+				options.fuzzy = false;
+			}
+			if(options.fuzzy) {
+				matchmask = 1 << (patternLen - 1);
+				pattern_alphabet = (function () {
+					var mask = {},
+						i = 0;
+					for (i = 0; i < patternLen; i++) {
+						mask[pattern.charAt(i)] = 0;
+					}
+					for (i = 0; i < patternLen; i++) {
+						mask[pattern.charAt(i)] |= 1 << (patternLen - i - 1);
+					}
+					return mask;
+				}());
+				match_bitapScore = function (e, x) {
+					var accuracy = e / patternLen,
+						proximity = Math.abs(MATCH_LOCATION - x);
+					if(!MATCH_DISTANCE) {
+						return proximity ? 1.0 : accuracy;
+					}
+					return accuracy + (proximity / MATCH_DISTANCE);
+				};
+			}
+			search = function (text) {
+				text = options.caseSensitive ? text : text.toLowerCase();
+				if(pattern === text || text.indexOf(pattern) !== -1) {
+					return {
+						isMatch: true,
+						score: 0
+					};
+				}
+				if(!options.fuzzy) {
+					return {
+						isMatch: false,
+						score: 1
+					};
+				}
+				var i, j,
+					textLen = text.length,
+					scoreThreshold = MATCH_THRESHOLD,
+					bestLoc = text.indexOf(pattern, MATCH_LOCATION),
+					binMin, binMid,
+					binMax = patternLen + textLen,
+					lastRd, start, finish, rd, charMatch,
+					score = 1,
+					locations = [];
+				if (bestLoc !== -1) {
+					scoreThreshold = Math.min(match_bitapScore(0, bestLoc), scoreThreshold);
+					bestLoc = text.lastIndexOf(pattern, MATCH_LOCATION + patternLen);
+					if (bestLoc !== -1) {
+						scoreThreshold = Math.min(match_bitapScore(0, bestLoc), scoreThreshold);
+					}
+				}
+				bestLoc = -1;
+				for (i = 0; i < patternLen; i++) {
+					binMin = 0;
+					binMid = binMax;
+					while (binMin < binMid) {
+						if (match_bitapScore(i, MATCH_LOCATION + binMid) <= scoreThreshold) {
+							binMin = binMid;
+						} else {
+							binMax = binMid;
+						}
+						binMid = Math.floor((binMax - binMin) / 2 + binMin);
+					}
+					binMax = binMid;
+					start = Math.max(1, MATCH_LOCATION - binMid + 1);
+					finish = Math.min(MATCH_LOCATION + binMid, textLen) + patternLen;
+					rd = new Array(finish + 2);
+					rd[finish + 1] = (1 << i) - 1;
+					for (j = finish; j >= start; j--) {
+						charMatch = pattern_alphabet[text.charAt(j - 1)];
+						if (i === 0) {
+							rd[j] = ((rd[j + 1] << 1) | 1) & charMatch;
+						} else {
+							rd[j] = ((rd[j + 1] << 1) | 1) & charMatch | (((lastRd[j + 1] | lastRd[j]) << 1) | 1) | lastRd[j + 1];
+						}
+						if (rd[j] & matchmask) {
+							score = match_bitapScore(i, j - 1);
+							if (score <= scoreThreshold) {
+								scoreThreshold = score;
+								bestLoc = j - 1;
+								locations.push(bestLoc);
+								if (bestLoc > MATCH_LOCATION) {
+									start = Math.max(1, 2 * MATCH_LOCATION - bestLoc);
+								} else {
+									break;
+								}
+							}
+						}
+					}
+					if (match_bitapScore(i + 1, MATCH_LOCATION) > scoreThreshold) {
+						break;
+					}
+					lastRd = rd;
+				}
+				return {
+					isMatch: bestLoc >= 0,
+					score: score
+				};
+			};
+			return txt === true ? { 'search' : search } : search(txt);
+		};
+		$.vakata.search.defaults = {
+			location : 0,
+			distance : 100,
+			threshold : 0.6,
+			fuzzy : false,
+			caseSensitive : false
+		};
+	}($));
+
+	// include the search plugin by default
+	// $.jstree.defaults.plugins.push("search");
+
+
+/**
+ * ### Sort plugin
+ *
+ * Automatically sorts all siblings in the tree according to a sorting function.
+ */
+
+	/**
+	 * the settings function used to sort the nodes.
+	 * It is executed in the tree's context, accepts two nodes as arguments and should return `1` or `-1`.
+	 * @name $.jstree.defaults.sort
+	 * @plugin sort
+	 */
+	$.jstree.defaults.sort = function (a, b) {
+		//return this.get_type(a) === this.get_type(b) ? (this.get_text(a) > this.get_text(b) ? 1 : -1) : this.get_type(a) >= this.get_type(b);
+		return this.get_text(a) > this.get_text(b) ? 1 : -1;
+	};
+	$.jstree.plugins.sort = function (options, parent) {
+		this.bind = function () {
+			parent.bind.call(this);
+			this.element
+				.on("model.jstree", $.proxy(function (e, data) {
+						this.sort(data.parent, true);
+					}, this))
+				.on("rename_node.jstree create_node.jstree", $.proxy(function (e, data) {
+						this.sort(data.parent || data.node.parent, false);
+						this.redraw_node(data.parent || data.node.parent, true);
+					}, this))
+				.on("move_node.jstree copy_node.jstree", $.proxy(function (e, data) {
+						this.sort(data.parent, false);
+						this.redraw_node(data.parent, true);
+					}, this));
+		};
+		/**
+		 * used to sort a node's children
+		 * @private
+		 * @name sort(obj [, deep])
+		 * @param  {mixed} obj the node
+		 * @param {Boolean} deep if set to `true` nodes are sorted recursively.
+		 * @plugin sort
+		 * @trigger search.jstree
+		 */
+		this.sort = function (obj, deep) {
+			var i, j;
+			obj = this.get_node(obj);
+			if(obj && obj.children && obj.children.length) {
+				obj.children.sort($.proxy(this.settings.sort, this));
+				if(deep) {
+					for(i = 0, j = obj.children_d.length; i < j; i++) {
+						this.sort(obj.children_d[i], false);
+					}
+				}
+			}
+		};
+	};
+
+	// include the sort plugin by default
+	// $.jstree.defaults.plugins.push("sort");
+
+/**
+ * ### State plugin
+ *
+ * Saves the state of the tree (selected nodes, opened nodes) on the user's computer using available options (localStorage, cookies, etc)
+ */
+
+	var to = false;
+	/**
+	 * stores all defaults for the state plugin
+	 * @name $.jstree.defaults.state
+	 * @plugin state
+	 */
+	$.jstree.defaults.state = {
+		/**
+		 * A string for the key to use when saving the current tree (change if using multiple trees in your project). Defaults to `jstree`.
+		 * @name $.jstree.defaults.state.key
+		 * @plugin state
+		 */
+		key		: 'jstree',
+		/**
+		 * A space separated list of events that trigger a state save. Defaults to `changed.jstree open_node.jstree close_node.jstree`.
+		 * @name $.jstree.defaults.state.events
+		 * @plugin state
+		 */
+		events	: 'changed.jstree open_node.jstree close_node.jstree check_node.jstree uncheck_node.jstree',
+		/**
+		 * Time in milliseconds after which the state will expire. Defaults to 'false' meaning - no expire.
+		 * @name $.jstree.defaults.state.ttl
+		 * @plugin state
+		 */
+		ttl		: false,
+		/**
+		 * A function that will be executed prior to restoring state with one argument - the state object. Can be used to clear unwanted parts of the state.
+		 * @name $.jstree.defaults.state.filter
+		 * @plugin state
+		 */
+		filter	: false
+	};
+	$.jstree.plugins.state = function (options, parent) {
+		this.bind = function () {
+			parent.bind.call(this);
+			var bind = $.proxy(function () {
+				this.element.on(this.settings.state.events, $.proxy(function () {
+					if(to) { clearTimeout(to); }
+					to = setTimeout($.proxy(function () { this.save_state(); }, this), 100);
+				}, this));
+				/**
+				 * triggered when the state plugin is finished restoring the state (and immediately after ready if there is no state to restore).
+				 * @event
+				 * @name state_ready.jstree
+				 * @plugin state
+				 */
+				this.trigger('state_ready');
+			}, this);
+			this.element
+				.on("ready.jstree", $.proxy(function (e, data) {
+						this.element.one("restore_state.jstree", bind);
+						if(!this.restore_state()) { bind(); }
+					}, this));
+		};
+		/**
+		 * save the state
+		 * @name save_state()
+		 * @plugin state
+		 */
+		this.save_state = function () {
+			var st = { 'state' : this.get_state(), 'ttl' : this.settings.state.ttl, 'sec' : +(new Date()) };
+			$.vakata.storage.set(this.settings.state.key, JSON.stringify(st));
+		};
+		/**
+		 * restore the state from the user's computer
+		 * @name restore_state()
+		 * @plugin state
+		 */
+		this.restore_state = function () {
+			var k = $.vakata.storage.get(this.settings.state.key);
+			if(!!k) { try { k = JSON.parse(k); } catch(ex) { return false; } }
+			if(!!k && k.ttl && k.sec && +(new Date()) - k.sec > k.ttl) { return false; }
+			if(!!k && k.state) { k = k.state; }
+			if(!!k && $.isFunction(this.settings.state.filter)) { k = this.settings.state.filter.call(this, k); }
+			if(!!k) {
+				this.element.one("set_state.jstree", function (e, data) { data.instance.trigger('restore_state', { 'state' : $.extend(true, {}, k) }); });
+				this.set_state(k);
+				return true;
+			}
+			return false;
+		};
+		/**
+		 * clear the state on the user's computer
+		 * @name clear_state()
+		 * @plugin state
+		 */
+		this.clear_state = function () {
+			return $.vakata.storage.del(this.settings.state.key);
+		};
+	};
+
+	(function ($, undefined) {
+		$.vakata.storage = {
+			// simply specifying the functions in FF throws an error
+			set : function (key, val) { return window.localStorage.setItem(key, val); },
+			get : function (key) { return window.localStorage.getItem(key); },
+			del : function (key) { return window.localStorage.removeItem(key); }
+		};
+	}($));
+
+	// include the state plugin by default
+	// $.jstree.defaults.plugins.push("state");
+
+/**
+ * ### Types plugin
+ *
+ * Makes it possible to add predefined types for groups of nodes, which make it possible to easily control nesting rules and icon for each group.
+ */
+
+	/**
+	 * An object storing all types as key value pairs, where the key is the type name and the value is an object that could contain following keys (all optional).
+	 *
+	 * * `max_children` the maximum number of immediate children this node type can have. Do not specify or set to `-1` for unlimited.
+	 * * `max_depth` the maximum number of nesting this node type can have. A value of `1` would mean that the node can have children, but no grandchildren. Do not specify or set to `-1` for unlimited.
+	 * * `valid_children` an array of node type strings, that nodes of this type can have as children. Do not specify or set to `-1` for no limits.
+	 * * `icon` a string - can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class. Omit to use the default icon from your theme.
+	 *
+	 * There are two predefined types:
+	 *
+	 * * `#` represents the root of the tree, for example `max_children` would control the maximum number of root nodes.
+	 * * `default` represents the default node - any settings here will be applied to all nodes that do not have a type specified.
+	 *
+	 * @name $.jstree.defaults.types
+	 * @plugin types
+	 */
+	$.jstree.defaults.types = {
+		'default' : {}
+	};
+	$.jstree.defaults.types[$.jstree.root] = {};
+
+	$.jstree.plugins.types = function (options, parent) {
+		this.init = function (el, options) {
+			var i, j;
+			if(options && options.types && options.types['default']) {
+				for(i in options.types) {
+					if(i !== "default" && i !== $.jstree.root && options.types.hasOwnProperty(i)) {
+						for(j in options.types['default']) {
+							if(options.types['default'].hasOwnProperty(j) && options.types[i][j] === undefined) {
+								options.types[i][j] = options.types['default'][j];
+							}
+						}
+					}
+				}
+			}
+			parent.init.call(this, el, options);
+			this._model.data[$.jstree.root].type = $.jstree.root;
+		};
+		this.refresh = function (skip_loading, forget_state) {
+			parent.refresh.call(this, skip_loading, forget_state);
+			this._model.data[$.jstree.root].type = $.jstree.root;
+		};
+		this.bind = function () {
+			this.element
+				.on('model.jstree', $.proxy(function (e, data) {
+						var m = this._model.data,
+							dpc = data.nodes,
+							t = this.settings.types,
+							i, j, c = 'default';
+						for(i = 0, j = dpc.length; i < j; i++) {
+							c = 'default';
+							if(m[dpc[i]].original && m[dpc[i]].original.type && t[m[dpc[i]].original.type]) {
+								c = m[dpc[i]].original.type;
+							}
+							if(m[dpc[i]].data && m[dpc[i]].data.jstree && m[dpc[i]].data.jstree.type && t[m[dpc[i]].data.jstree.type]) {
+								c = m[dpc[i]].data.jstree.type;
+							}
+							m[dpc[i]].type = c;
+							if(m[dpc[i]].icon === true && t[c].icon !== undefined) {
+								m[dpc[i]].icon = t[c].icon;
+							}
+						}
+						m[$.jstree.root].type = $.jstree.root;
+					}, this));
+			parent.bind.call(this);
+		};
+		this.get_json = function (obj, options, flat) {
+			var i, j,
+				m = this._model.data,
+				opt = options ? $.extend(true, {}, options, {no_id:false}) : {},
+				tmp = parent.get_json.call(this, obj, opt, flat);
+			if(tmp === false) { return false; }
+			if($.isArray(tmp)) {
+				for(i = 0, j = tmp.length; i < j; i++) {
+					tmp[i].type = tmp[i].id && m[tmp[i].id] && m[tmp[i].id].type ? m[tmp[i].id].type : "default";
+					if(options && options.no_id) {
+						delete tmp[i].id;
+						if(tmp[i].li_attr && tmp[i].li_attr.id) {
+							delete tmp[i].li_attr.id;
+						}
+						if(tmp[i].a_attr && tmp[i].a_attr.id) {
+							delete tmp[i].a_attr.id;
+						}
+					}
+				}
+			}
+			else {
+				tmp.type = tmp.id && m[tmp.id] && m[tmp.id].type ? m[tmp.id].type : "default";
+				if(options && options.no_id) {
+					tmp = this._delete_ids(tmp);
+				}
+			}
+			return tmp;
+		};
+		this._delete_ids = function (tmp) {
+			if($.isArray(tmp)) {
+				for(var i = 0, j = tmp.length; i < j; i++) {
+					tmp[i] = this._delete_ids(tmp[i]);
+				}
+				return tmp;
+			}
+			delete tmp.id;
+			if(tmp.li_attr && tmp.li_attr.id) {
+				delete tmp.li_attr.id;
+			}
+			if(tmp.a_attr && tmp.a_attr.id) {
+				delete tmp.a_attr.id;
+			}
+			if(tmp.children && $.isArray(tmp.children)) {
+				tmp.children = this._delete_ids(tmp.children);
+			}
+			return tmp;
+		};
+		this.check = function (chk, obj, par, pos, more) {
+			if(parent.check.call(this, chk, obj, par, pos, more) === false) { return false; }
+			obj = obj && obj.id ? obj : this.get_node(obj);
+			par = par && par.id ? par : this.get_node(par);
+			var m = obj && obj.id ? (more && more.origin ? more.origin : $.jstree.reference(obj.id)) : null, tmp, d, i, j;
+			m = m && m._model && m._model.data ? m._model.data : null;
+			switch(chk) {
+				case "create_node":
+				case "move_node":
+				case "copy_node":
+					if(chk !== 'move_node' || $.inArray(obj.id, par.children) === -1) {
+						tmp = this.get_rules(par);
+						if(tmp.max_children !== undefined && tmp.max_children !== -1 && tmp.max_children === par.children.length) {
+							this._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_01', 'reason' : 'max_children prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };
+							return false;
+						}
+						if(tmp.valid_children !== undefined && tmp.valid_children !== -1 && $.inArray((obj.type || 'default'), tmp.valid_children) === -1) {
+							this._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_02', 'reason' : 'valid_children prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };
+							return false;
+						}
+						if(m && obj.children_d && obj.parents) {
+							d = 0;
+							for(i = 0, j = obj.children_d.length; i < j; i++) {
+								d = Math.max(d, m[obj.children_d[i]].parents.length);
+							}
+							d = d - obj.parents.length + 1;
+						}
+						if(d <= 0 || d === undefined) { d = 1; }
+						do {
+							if(tmp.max_depth !== undefined && tmp.max_depth !== -1 && tmp.max_depth < d) {
+								this._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_03', 'reason' : 'max_depth prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };
+								return false;
+							}
+							par = this.get_node(par.parent);
+							tmp = this.get_rules(par);
+							d++;
+						} while(par);
+					}
+					break;
+			}
+			return true;
+		};
+		/**
+		 * used to retrieve the type settings object for a node
+		 * @name get_rules(obj)
+		 * @param {mixed} obj the node to find the rules for
+		 * @return {Object}
+		 * @plugin types
+		 */
+		this.get_rules = function (obj) {
+			obj = this.get_node(obj);
+			if(!obj) { return false; }
+			var tmp = this.get_type(obj, true);
+			if(tmp.max_depth === undefined) { tmp.max_depth = -1; }
+			if(tmp.max_children === undefined) { tmp.max_children = -1; }
+			if(tmp.valid_children === undefined) { tmp.valid_children = -1; }
+			return tmp;
+		};
+		/**
+		 * used to retrieve the type string or settings object for a node
+		 * @name get_type(obj [, rules])
+		 * @param {mixed} obj the node to find the rules for
+		 * @param {Boolean} rules if set to `true` instead of a string the settings object will be returned
+		 * @return {String|Object}
+		 * @plugin types
+		 */
+		this.get_type = function (obj, rules) {
+			obj = this.get_node(obj);
+			return (!obj) ? false : ( rules ? $.extend({ 'type' : obj.type }, this.settings.types[obj.type]) : obj.type);
+		};
+		/**
+		 * used to change a node's type
+		 * @name set_type(obj, type)
+		 * @param {mixed} obj the node to change
+		 * @param {String} type the new type
+		 * @plugin types
+		 */
+		this.set_type = function (obj, type) {
+			var t, t1, t2, old_type, old_icon;
+			if($.isArray(obj)) {
+				obj = obj.slice();
+				for(t1 = 0, t2 = obj.length; t1 < t2; t1++) {
+					this.set_type(obj[t1], type);
+				}
+				return true;
+			}
+			t = this.settings.types;
+			obj = this.get_node(obj);
+			if(!t[type] || !obj) { return false; }
+			old_type = obj.type;
+			old_icon = this.get_icon(obj);
+			obj.type = type;
+			if(old_icon === true || (t[old_type] && t[old_type].icon !== undefined && old_icon === t[old_type].icon)) {
+				this.set_icon(obj, t[type].icon !== undefined ? t[type].icon : true);
+			}
+			return true;
+		};
+	};
+	// include the types plugin by default
+	// $.jstree.defaults.plugins.push("types");
+
+/**
+ * ### Unique plugin
+ *
+ * Enforces that no nodes with the same name can coexist as siblings.
+ */
+
+	/**
+	 * stores all defaults for the unique plugin
+	 * @name $.jstree.defaults.unique
+	 * @plugin unique
+	 */
+	$.jstree.defaults.unique = {
+		/**
+		 * Indicates if the comparison should be case sensitive. Default is `false`.
+		 * @name $.jstree.defaults.unique.case_sensitive
+		 * @plugin unique
+		 */
+		case_sensitive : false,
+		/**
+		 * A callback executed in the instance's scope when a new node is created and the name is already taken, the two arguments are the conflicting name and the counter. The default will produce results like `New node (2)`.
+		 * @name $.jstree.defaults.unique.duplicate
+		 * @plugin unique
+		 */
+		duplicate : function (name, counter) {
+			return name + ' (' + counter + ')';
+		}
+	};
+
+	$.jstree.plugins.unique = function (options, parent) {
+		this.check = function (chk, obj, par, pos, more) {
+			if(parent.check.call(this, chk, obj, par, pos, more) === false) { return false; }
+			obj = obj && obj.id ? obj : this.get_node(obj);
+			par = par && par.id ? par : this.get_node(par);
+			if(!par || !par.children) { return true; }
+			var n = chk === "rename_node" ? pos : obj.text,
+				c = [],
+				s = this.settings.unique.case_sensitive,
+				m = this._model.data, i, j;
+			for(i = 0, j = par.children.length; i < j; i++) {
+				c.push(s ? m[par.children[i]].text : m[par.children[i]].text.toLowerCase());
+			}
+			if(!s) { n = n.toLowerCase(); }
+			switch(chk) {
+				case "delete_node":
+					return true;
+				case "rename_node":
+					i = ($.inArray(n, c) === -1 || (obj.text && obj.text[ s ? 'toString' : 'toLowerCase']() === n));
+					if(!i) {
+						this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_01', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };
+					}
+					return i;
+				case "create_node":
+					i = ($.inArray(n, c) === -1);
+					if(!i) {
+						this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_04', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };
+					}
+					return i;
+				case "copy_node":
+					i = ($.inArray(n, c) === -1);
+					if(!i) {
+						this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_02', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };
+					}
+					return i;
+				case "move_node":
+					i = ( (obj.parent === par.id && (!more || !more.is_multi)) || $.inArray(n, c) === -1);
+					if(!i) {
+						this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_03', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };
+					}
+					return i;
+			}
+			return true;
+		};
+		this.create_node = function (par, node, pos, callback, is_loaded) {
+			if(!node || node.text === undefined) {
+				if(par === null) {
+					par = $.jstree.root;
+				}
+				par = this.get_node(par);
+				if(!par) {
+					return parent.create_node.call(this, par, node, pos, callback, is_loaded);
+				}
+				pos = pos === undefined ? "last" : pos;
+				if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) {
+					return parent.create_node.call(this, par, node, pos, callback, is_loaded);
+				}
+				if(!node) { node = {}; }
+				var tmp, n, dpc, i, j, m = this._model.data, s = this.settings.unique.case_sensitive, cb = this.settings.unique.duplicate;
+				n = tmp = this.get_string('New node');
+				dpc = [];
+				for(i = 0, j = par.children.length; i < j; i++) {
+					dpc.push(s ? m[par.children[i]].text : m[par.children[i]].text.toLowerCase());
+				}
+				i = 1;
+				while($.inArray(s ? n : n.toLowerCase(), dpc) !== -1) {
+					n = cb.call(this, tmp, (++i)).toString();
+				}
+				node.text = n;
+			}
+			return parent.create_node.call(this, par, node, pos, callback, is_loaded);
+		};
+	};
+
+	// include the unique plugin by default
+	// $.jstree.defaults.plugins.push("unique");
+
+
+/**
+ * ### Wholerow plugin
+ *
+ * Makes each node appear block level. Making selection easier. May cause slow down for large trees in old browsers.
+ */
+
+	var div = document.createElement('DIV');
+	div.setAttribute('unselectable','on');
+	div.setAttribute('role','presentation');
+	div.className = 'jstree-wholerow';
+	div.innerHTML = '&#160;';
+	$.jstree.plugins.wholerow = function (options, parent) {
+		this.bind = function () {
+			parent.bind.call(this);
+
+			this.element
+				.on('ready.jstree set_state.jstree', $.proxy(function () {
+						this.hide_dots();
+					}, this))
+				.on("init.jstree loading.jstree ready.jstree", $.proxy(function () {
+						//div.style.height = this._data.core.li_height + 'px';
+						this.get_container_ul().addClass('jstree-wholerow-ul');
+					}, this))
+				.on("deselect_all.jstree", $.proxy(function (e, data) {
+						this.element.find('.jstree-wholerow-clicked').removeClass('jstree-wholerow-clicked');
+					}, this))
+				.on("changed.jstree", $.proxy(function (e, data) {
+						this.element.find('.jstree-wholerow-clicked').removeClass('jstree-wholerow-clicked');
+						var tmp = false, i, j;
+						for(i = 0, j = data.selected.length; i < j; i++) {
+							tmp = this.get_node(data.selected[i], true);
+							if(tmp && tmp.length) {
+								tmp.children('.jstree-wholerow').addClass('jstree-wholerow-clicked');
+							}
+						}
+					}, this))
+				.on("open_node.jstree", $.proxy(function (e, data) {
+						this.get_node(data.node, true).find('.jstree-clicked').parent().children('.jstree-wholerow').addClass('jstree-wholerow-clicked');
+					}, this))
+				.on("hover_node.jstree dehover_node.jstree", $.proxy(function (e, data) {
+						if(e.type === "hover_node" && this.is_disabled(data.node)) { return; }
+						this.get_node(data.node, true).children('.jstree-wholerow')[e.type === "hover_node"?"addClass":"removeClass"]('jstree-wholerow-hovered');
+					}, this))
+				.on("contextmenu.jstree", ".jstree-wholerow", $.proxy(function (e) {
+						e.preventDefault();
+						var tmp = $.Event('contextmenu', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey, pageX : e.pageX, pageY : e.pageY });
+						$(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp);
+					}, this))
+				/*!
+				.on("mousedown.jstree touchstart.jstree", ".jstree-wholerow", function (e) {
+						if(e.target === e.currentTarget) {
+							var a = $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor");
+							e.target = a[0];
+							a.trigger(e);
+						}
+					})
+				*/
+				.on("click.jstree", ".jstree-wholerow", function (e) {
+						e.stopImmediatePropagation();
+						var tmp = $.Event('click', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey });
+						$(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp).focus();
+					})
+				.on("click.jstree", ".jstree-leaf > .jstree-ocl", $.proxy(function (e) {
+						e.stopImmediatePropagation();
+						var tmp = $.Event('click', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey });
+						$(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp).focus();
+					}, this))
+				.on("mouseover.jstree", ".jstree-wholerow, .jstree-icon", $.proxy(function (e) {
+						e.stopImmediatePropagation();
+						if(!this.is_disabled(e.currentTarget)) {
+							this.hover_node(e.currentTarget);
+						}
+						return false;
+					}, this))
+				.on("mouseleave.jstree", ".jstree-node", $.proxy(function (e) {
+						this.dehover_node(e.currentTarget);
+					}, this));
+		};
+		this.teardown = function () {
+			if(this.settings.wholerow) {
+				this.element.find(".jstree-wholerow").remove();
+			}
+			parent.teardown.call(this);
+		};
+		this.redraw_node = function(obj, deep, callback, force_render) {
+			obj = parent.redraw_node.apply(this, arguments);
+			if(obj) {
+				var tmp = div.cloneNode(true);
+				//tmp.style.height = this._data.core.li_height + 'px';
+				if($.inArray(obj.id, this._data.core.selected) !== -1) { tmp.className += ' jstree-wholerow-clicked'; }
+				if(this._data.core.focused && this._data.core.focused === obj.id) { tmp.className += ' jstree-wholerow-hovered'; }
+				obj.insertBefore(tmp, obj.childNodes[0]);
+			}
+			return obj;
+		};
+	};
+	// include the wholerow plugin by default
+	// $.jstree.defaults.plugins.push("wholerow");
+	if(document.registerElement && Object && Object.create) {
+		var proto = Object.create(HTMLElement.prototype);
+		proto.createdCallback = function () {
+			var c = { core : {}, plugins : [] }, i;
+			for(i in $.jstree.plugins) {
+				if($.jstree.plugins.hasOwnProperty(i) && this.attributes[i]) {
+					c.plugins.push(i);
+					if(this.getAttribute(i) && JSON.parse(this.getAttribute(i))) {
+						c[i] = JSON.parse(this.getAttribute(i));
+					}
+				}
+			}
+			for(i in $.jstree.defaults.core) {
+				if($.jstree.defaults.core.hasOwnProperty(i) && this.attributes[i]) {
+					c.core[i] = JSON.parse(this.getAttribute(i)) || this.getAttribute(i);
+				}
+			}
+			$(this).jstree(c);
+		};
+		// proto.attributeChangedCallback = function (name, previous, value) { };
+		try {
+			document.registerElement("vakata-jstree", { prototype: proto });
+		} catch(ignore) { }
+	}
+
+}));
\ No newline at end of file
diff --git a/public/bower_components/jstree/style.css b/public/bower_components/jstree/style.css
new file mode 100644
index 0000000..85bd0d8
--- /dev/null
+++ b/public/bower_components/jstree/style.css
@@ -0,0 +1,1061 @@
+/* jsTree default theme */
+.jstree-node,
+.jstree-children,
+.jstree-container-ul {
+  display: block;
+  margin: 0;
+  padding: 0;
+  list-style-type: none;
+  list-style-image: none;
+}
+.jstree-node {
+  white-space: nowrap;
+}
+.jstree-anchor {
+  display: inline-block;
+  color: black;
+  white-space: nowrap;
+  padding: 0 4px 0 1px;
+  margin: 0;
+  vertical-align: top;
+}
+.jstree-anchor:focus {
+  outline: 0;
+}
+.jstree-anchor,
+.jstree-anchor:link,
+.jstree-anchor:visited,
+.jstree-anchor:hover,
+.jstree-anchor:active {
+  text-decoration: none;
+  color: inherit;
+}
+.jstree-icon {
+  display: inline-block;
+  text-decoration: none;
+  margin: 0;
+  padding: 0;
+  vertical-align: top;
+  text-align: center;
+}
+.jstree-icon:empty {
+  display: inline-block;
+  text-decoration: none;
+  margin: 0;
+  padding: 0;
+  vertical-align: top;
+  text-align: center;
+}
+.jstree-ocl {
+  cursor: pointer;
+}
+.jstree-leaf > .jstree-ocl {
+  cursor: default;
+}
+.jstree .jstree-open > .jstree-children {
+  display: block;
+}
+.jstree .jstree-closed > .jstree-children,
+.jstree .jstree-leaf > .jstree-children {
+  display: none;
+}
+.jstree-anchor > .jstree-themeicon {
+  margin-right: 2px;
+}
+.jstree-no-icons .jstree-themeicon,
+.jstree-anchor > .jstree-themeicon-hidden {
+  display: none;
+}
+.jstree-hidden {
+  display: none;
+}
+.jstree-rtl .jstree-anchor {
+  padding: 0 1px 0 4px;
+}
+.jstree-rtl .jstree-anchor > .jstree-themeicon {
+  margin-left: 2px;
+  margin-right: 0;
+}
+.jstree-rtl .jstree-node {
+  margin-left: 0;
+}
+.jstree-rtl .jstree-container-ul > .jstree-node {
+  margin-right: 0;
+}
+.jstree-wholerow-ul {
+  position: relative;
+  display: inline-block;
+  min-width: 100%;
+}
+.jstree-wholerow-ul .jstree-leaf > .jstree-ocl {
+  cursor: pointer;
+}
+.jstree-wholerow-ul .jstree-anchor,
+.jstree-wholerow-ul .jstree-icon {
+  position: relative;
+}
+.jstree-wholerow-ul .jstree-wholerow {
+  width: 100%;
+  cursor: pointer;
+  position: absolute;
+  left: 0;
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+.vakata-context {
+  display: none;
+}
+.vakata-context,
+.vakata-context ul {
+  margin: 0;
+  padding: 2px;
+  position: absolute;
+  background: #f5f5f5;
+  border: 1px solid #979797;
+  box-shadow: 2px 2px 2px #999999;
+}
+.vakata-context ul {
+  list-style: none;
+  left: 100%;
+  margin-top: -2.7em;
+  margin-left: -4px;
+}
+.vakata-context .vakata-context-right ul {
+  left: auto;
+  right: 100%;
+  margin-left: auto;
+  margin-right: -4px;
+}
+.vakata-context li {
+  list-style: none;
+  display: inline;
+}
+.vakata-context li > a {
+  display: block;
+  padding: 0 2em 0 2em;
+  text-decoration: none;
+  width: auto;
+  color: black;
+  white-space: nowrap;
+  line-height: 2.4em;
+  text-shadow: 1px 1px 0 white;
+  border-radius: 1px;
+}
+.vakata-context li > a:hover {
+  position: relative;
+  background-color: #e8eff7;
+  box-shadow: 0 0 2px #0a6aa1;
+}
+.vakata-context li > a.vakata-context-parent {
+  background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw==");
+  background-position: right center;
+  background-repeat: no-repeat;
+}
+.vakata-context li > a:focus {
+  outline: 0;
+}
+.vakata-context .vakata-context-hover > a {
+  position: relative;
+  background-color: #e8eff7;
+  box-shadow: 0 0 2px #0a6aa1;
+}
+.vakata-context .vakata-context-separator > a,
+.vakata-context .vakata-context-separator > a:hover {
+  background: white;
+  border: 0;
+  border-top: 1px solid #e2e3e3;
+  height: 1px;
+  min-height: 1px;
+  max-height: 1px;
+  padding: 0;
+  margin: 0 0 0 2.4em;
+  border-left: 1px solid #e0e0e0;
+  text-shadow: 0 0 0 transparent;
+  box-shadow: 0 0 0 transparent;
+  border-radius: 0;
+}
+.vakata-context .vakata-contextmenu-disabled a,
+.vakata-context .vakata-contextmenu-disabled a:hover {
+  color: silver;
+  background-color: transparent;
+  border: 0;
+  box-shadow: 0 0 0;
+}
+.vakata-context li > a > i {
+  text-decoration: none;
+  display: inline-block;
+  width: 2.4em;
+  height: 2.4em;
+  background: transparent;
+  margin: 0 0 0 -2em;
+  vertical-align: top;
+  text-align: center;
+  line-height: 2.4em;
+}
+.vakata-context li > a > i:empty {
+  width: 2.4em;
+  line-height: 2.4em;
+}
+.vakata-context li > a .vakata-contextmenu-sep {
+  display: inline-block;
+  width: 1px;
+  height: 2.4em;
+  background: white;
+  margin: 0 0.5em 0 0;
+  border-left: 1px solid #e2e3e3;
+}
+.vakata-context .vakata-contextmenu-shortcut {
+  font-size: 0.8em;
+  color: silver;
+  opacity: 0.5;
+  display: none;
+}
+.vakata-context-rtl ul {
+  left: auto;
+  right: 100%;
+  margin-left: auto;
+  margin-right: -4px;
+}
+.vakata-context-rtl li > a.vakata-context-parent {
+  background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7");
+  background-position: left center;
+  background-repeat: no-repeat;
+}
+.vakata-context-rtl .vakata-context-separator > a {
+  margin: 0 2.4em 0 0;
+  border-left: 0;
+  border-right: 1px solid #e2e3e3;
+}
+.vakata-context-rtl .vakata-context-left ul {
+  right: auto;
+  left: 100%;
+  margin-left: -4px;
+  margin-right: auto;
+}
+.vakata-context-rtl li > a > i {
+  margin: 0 -2em 0 0;
+}
+.vakata-context-rtl li > a .vakata-contextmenu-sep {
+  margin: 0 0 0 0.5em;
+  border-left-color: white;
+  background: #e2e3e3;
+}
+#jstree-marker {
+  position: absolute;
+  top: 0;
+  left: 0;
+  margin: -5px 0 0 0;
+  padding: 0;
+  border-right: 0;
+  border-top: 5px solid transparent;
+  border-bottom: 5px solid transparent;
+  border-left: 5px solid;
+  width: 0;
+  height: 0;
+  font-size: 0;
+  line-height: 0;
+}
+#jstree-dnd {
+  line-height: 16px;
+  margin: 0;
+  padding: 4px;
+}
+#jstree-dnd .jstree-icon,
+#jstree-dnd .jstree-copy {
+  display: inline-block;
+  text-decoration: none;
+  margin: 0 2px 0 0;
+  padding: 0;
+  width: 16px;
+  height: 16px;
+}
+#jstree-dnd .jstree-ok {
+  background: green;
+}
+#jstree-dnd .jstree-er {
+  background: red;
+}
+#jstree-dnd .jstree-copy {
+  margin: 0 2px 0 2px;
+}
+.jstree-default .jstree-node,
+.jstree-default .jstree-icon {
+  background-repeat: no-repeat;
+  background-color: transparent;
+}
+.jstree-default .jstree-anchor,
+.jstree-default .jstree-wholerow {
+  transition: background-color 0.15s, box-shadow 0.15s;
+}
+.jstree-default .jstree-hovered {
+  background: #e7f4f9;
+  border-radius: 2px;
+  box-shadow: inset 0 0 1px #cccccc;
+}
+.jstree-default .jstree-clicked {
+  background: #beebff;
+  border-radius: 2px;
+  box-shadow: inset 0 0 1px #999999;
+}
+.jstree-default .jstree-no-icons .jstree-anchor > .jstree-themeicon {
+  display: none;
+}
+.jstree-default .jstree-disabled {
+  background: transparent;
+  color: #666666;
+}
+.jstree-default .jstree-disabled.jstree-hovered {
+  background: transparent;
+  box-shadow: none;
+}
+.jstree-default .jstree-disabled.jstree-clicked {
+  background: #efefef;
+}
+.jstree-default .jstree-disabled > .jstree-icon {
+  opacity: 0.8;
+  filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");
+  /* Firefox 10+ */
+  filter: gray;
+  /* IE6-9 */
+  -webkit-filter: grayscale(100%);
+  /* Chrome 19+ & Safari 6+ */
+}
+.jstree-default .jstree-search {
+  font-style: italic;
+  color: #8b0000;
+  font-weight: bold;
+}
+.jstree-default .jstree-no-checkboxes .jstree-checkbox {
+  display: none !important;
+}
+.jstree-default.jstree-checkbox-no-clicked .jstree-clicked {
+  background: transparent;
+  box-shadow: none;
+}
+.jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered {
+  background: #e7f4f9;
+}
+.jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked {
+  background: transparent;
+}
+.jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered {
+  background: #e7f4f9;
+}
+.jstree-default > .jstree-striped {
+  min-width: 100%;
+  display: inline-block;
+  background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==") left top repeat;
+}
+.jstree-default > .jstree-wholerow-ul .jstree-hovered,
+.jstree-default > .jstree-wholerow-ul .jstree-clicked {
+  background: transparent;
+  box-shadow: none;
+  border-radius: 0;
+}
+.jstree-default .jstree-wholerow {
+  -moz-box-sizing: border-box;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+}
+.jstree-default .jstree-wholerow-hovered {
+  background: #e7f4f9;
+}
+.jstree-default .jstree-wholerow-clicked {
+  background: #beebff;
+  background: -webkit-linear-gradient(top, #beebff 0%, #a8e4ff 100%);
+  background: linear-gradient(to bottom, #beebff 0%, #a8e4ff 100%);
+}
+.jstree-default .jstree-node {
+  min-height: 24px;
+  line-height: 24px;
+  margin-left: 24px;
+  min-width: 24px;
+}
+.jstree-default .jstree-anchor {
+  line-height: 24px;
+  height: 24px;
+}
+.jstree-default .jstree-icon {
+  width: 24px;
+  height: 24px;
+  line-height: 24px;
+}
+.jstree-default .jstree-icon:empty {
+  width: 24px;
+  height: 24px;
+  line-height: 24px;
+}
+.jstree-default.jstree-rtl .jstree-node {
+  margin-right: 24px;
+}
+.jstree-default .jstree-wholerow {
+  height: 24px;
+}
+.jstree-default .jstree-node,
+.jstree-default .jstree-icon {
+  background-image: url("32px.png");
+}
+.jstree-default .jstree-node {
+  background-position: -292px -4px;
+  background-repeat: repeat-y;
+}
+.jstree-default .jstree-last {
+  background: transparent;
+}
+.jstree-default .jstree-open > .jstree-ocl {
+  background-position: -132px -4px;
+}
+.jstree-default .jstree-closed > .jstree-ocl {
+  background-position: -100px -4px;
+}
+.jstree-default .jstree-leaf > .jstree-ocl {
+  background-position: -68px -4px;
+}
+.jstree-default .jstree-themeicon {
+  background-position: -260px -4px;
+}
+.jstree-default > .jstree-no-dots .jstree-node,
+.jstree-default > .jstree-no-dots .jstree-leaf > .jstree-ocl {
+  background: transparent;
+}
+.jstree-default > .jstree-no-dots .jstree-open > .jstree-ocl {
+  background-position: -36px -4px;
+}
+.jstree-default > .jstree-no-dots .jstree-closed > .jstree-ocl {
+  background-position: -4px -4px;
+}
+.jstree-default .jstree-disabled {
+  background: transparent;
+}
+.jstree-default .jstree-disabled.jstree-hovered {
+  background: transparent;
+}
+.jstree-default .jstree-disabled.jstree-clicked {
+  background: #efefef;
+}
+.jstree-default .jstree-checkbox {
+  background-position: -164px -4px;
+}
+.jstree-default .jstree-checkbox:hover {
+  background-position: -164px -36px;
+}
+.jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox,
+.jstree-default .jstree-checked > .jstree-checkbox {
+  background-position: -228px -4px;
+}
+.jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover,
+.jstree-default .jstree-checked > .jstree-checkbox:hover {
+  background-position: -228px -36px;
+}
+.jstree-default .jstree-anchor > .jstree-undetermined {
+  background-position: -196px -4px;
+}
+.jstree-default .jstree-anchor > .jstree-undetermined:hover {
+  background-position: -196px -36px;
+}
+.jstree-default .jstree-checkbox-disabled {
+  opacity: 0.8;
+  filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");
+  /* Firefox 10+ */
+  filter: gray;
+  /* IE6-9 */
+  -webkit-filter: grayscale(100%);
+  /* Chrome 19+ & Safari 6+ */
+}
+.jstree-default > .jstree-striped {
+  background-size: auto 48px;
+}
+.jstree-default.jstree-rtl .jstree-node {
+  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==");
+  background-position: 100% 1px;
+  background-repeat: repeat-y;
+}
+.jstree-default.jstree-rtl .jstree-last {
+  background: transparent;
+}
+.jstree-default.jstree-rtl .jstree-open > .jstree-ocl {
+  background-position: -132px -36px;
+}
+.jstree-default.jstree-rtl .jstree-closed > .jstree-ocl {
+  background-position: -100px -36px;
+}
+.jstree-default.jstree-rtl .jstree-leaf > .jstree-ocl {
+  background-position: -68px -36px;
+}
+.jstree-default.jstree-rtl > .jstree-no-dots .jstree-node,
+.jstree-default.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl {
+  background: transparent;
+}
+.jstree-default.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl {
+  background-position: -36px -36px;
+}
+.jstree-default.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl {
+  background-position: -4px -36px;
+}
+.jstree-default .jstree-themeicon-custom {
+  background-color: transparent;
+  background-image: none;
+  background-position: 0 0;
+}
+.jstree-default > .jstree-container-ul .jstree-loading > .jstree-ocl {
+  background: url("throbber.gif") center center no-repeat;
+}
+.jstree-default .jstree-file {
+  background: url("32px.png") -100px -68px no-repeat;
+}
+.jstree-default .jstree-folder {
+  background: url("32px.png") -260px -4px no-repeat;
+}
+.jstree-default > .jstree-container-ul > .jstree-node {
+  margin-left: 0;
+  margin-right: 0;
+}
+#jstree-dnd.jstree-default {
+  line-height: 24px;
+  padding: 0 4px;
+}
+#jstree-dnd.jstree-default .jstree-ok,
+#jstree-dnd.jstree-default .jstree-er {
+  background-image: url("32px.png");
+  background-repeat: no-repeat;
+  background-color: transparent;
+}
+#jstree-dnd.jstree-default i {
+  background: transparent;
+  width: 24px;
+  height: 24px;
+  line-height: 24px;
+}
+#jstree-dnd.jstree-default .jstree-ok {
+  background-position: -4px -68px;
+}
+#jstree-dnd.jstree-default .jstree-er {
+  background-position: -36px -68px;
+}
+.jstree-default.jstree-rtl .jstree-node {
+  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==");
+}
+.jstree-default.jstree-rtl .jstree-last {
+  background: transparent;
+}
+.jstree-default-small .jstree-node {
+  min-height: 18px;
+  line-height: 18px;
+  margin-left: 18px;
+  min-width: 18px;
+}
+.jstree-default-small .jstree-anchor {
+  line-height: 18px;
+  height: 18px;
+}
+.jstree-default-small .jstree-icon {
+  width: 18px;
+  height: 18px;
+  line-height: 18px;
+}
+.jstree-default-small .jstree-icon:empty {
+  width: 18px;
+  height: 18px;
+  line-height: 18px;
+}
+.jstree-default-small.jstree-rtl .jstree-node {
+  margin-right: 18px;
+}
+.jstree-default-small .jstree-wholerow {
+  height: 18px;
+}
+.jstree-default-small .jstree-node,
+.jstree-default-small .jstree-icon {
+  background-image: url("32px.png");
+}
+.jstree-default-small .jstree-node {
+  background-position: -295px -7px;
+  background-repeat: repeat-y;
+}
+.jstree-default-small .jstree-last {
+  background: transparent;
+}
+.jstree-default-small .jstree-open > .jstree-ocl {
+  background-position: -135px -7px;
+}
+.jstree-default-small .jstree-closed > .jstree-ocl {
+  background-position: -103px -7px;
+}
+.jstree-default-small .jstree-leaf > .jstree-ocl {
+  background-position: -71px -7px;
+}
+.jstree-default-small .jstree-themeicon {
+  background-position: -263px -7px;
+}
+.jstree-default-small > .jstree-no-dots .jstree-node,
+.jstree-default-small > .jstree-no-dots .jstree-leaf > .jstree-ocl {
+  background: transparent;
+}
+.jstree-default-small > .jstree-no-dots .jstree-open > .jstree-ocl {
+  background-position: -39px -7px;
+}
+.jstree-default-small > .jstree-no-dots .jstree-closed > .jstree-ocl {
+  background-position: -7px -7px;
+}
+.jstree-default-small .jstree-disabled {
+  background: transparent;
+}
+.jstree-default-small .jstree-disabled.jstree-hovered {
+  background: transparent;
+}
+.jstree-default-small .jstree-disabled.jstree-clicked {
+  background: #efefef;
+}
+.jstree-default-small .jstree-checkbox {
+  background-position: -167px -7px;
+}
+.jstree-default-small .jstree-checkbox:hover {
+  background-position: -167px -39px;
+}
+.jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox,
+.jstree-default-small .jstree-checked > .jstree-checkbox {
+  background-position: -231px -7px;
+}
+.jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover,
+.jstree-default-small .jstree-checked > .jstree-checkbox:hover {
+  background-position: -231px -39px;
+}
+.jstree-default-small .jstree-anchor > .jstree-undetermined {
+  background-position: -199px -7px;
+}
+.jstree-default-small .jstree-anchor > .jstree-undetermined:hover {
+  background-position: -199px -39px;
+}
+.jstree-default-small .jstree-checkbox-disabled {
+  opacity: 0.8;
+  filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");
+  /* Firefox 10+ */
+  filter: gray;
+  /* IE6-9 */
+  -webkit-filter: grayscale(100%);
+  /* Chrome 19+ & Safari 6+ */
+}
+.jstree-default-small > .jstree-striped {
+  background-size: auto 36px;
+}
+.jstree-default-small.jstree-rtl .jstree-node {
+  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==");
+  background-position: 100% 1px;
+  background-repeat: repeat-y;
+}
+.jstree-default-small.jstree-rtl .jstree-last {
+  background: transparent;
+}
+.jstree-default-small.jstree-rtl .jstree-open > .jstree-ocl {
+  background-position: -135px -39px;
+}
+.jstree-default-small.jstree-rtl .jstree-closed > .jstree-ocl {
+  background-position: -103px -39px;
+}
+.jstree-default-small.jstree-rtl .jstree-leaf > .jstree-ocl {
+  background-position: -71px -39px;
+}
+.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-node,
+.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl {
+  background: transparent;
+}
+.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl {
+  background-position: -39px -39px;
+}
+.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl {
+  background-position: -7px -39px;
+}
+.jstree-default-small .jstree-themeicon-custom {
+  background-color: transparent;
+  background-image: none;
+  background-position: 0 0;
+}
+.jstree-default-small > .jstree-container-ul .jstree-loading > .jstree-ocl {
+  background: url("throbber.gif") center center no-repeat;
+}
+.jstree-default-small .jstree-file {
+  background: url("32px.png") -103px -71px no-repeat;
+}
+.jstree-default-small .jstree-folder {
+  background: url("32px.png") -263px -7px no-repeat;
+}
+.jstree-default-small > .jstree-container-ul > .jstree-node {
+  margin-left: 0;
+  margin-right: 0;
+}
+#jstree-dnd.jstree-default-small {
+  line-height: 18px;
+  padding: 0 4px;
+}
+#jstree-dnd.jstree-default-small .jstree-ok,
+#jstree-dnd.jstree-default-small .jstree-er {
+  background-image: url("32px.png");
+  background-repeat: no-repeat;
+  background-color: transparent;
+}
+#jstree-dnd.jstree-default-small i {
+  background: transparent;
+  width: 18px;
+  height: 18px;
+  line-height: 18px;
+}
+#jstree-dnd.jstree-default-small .jstree-ok {
+  background-position: -7px -71px;
+}
+#jstree-dnd.jstree-default-small .jstree-er {
+  background-position: -39px -71px;
+}
+.jstree-default-small.jstree-rtl .jstree-node {
+  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==");
+}
+.jstree-default-small.jstree-rtl .jstree-last {
+  background: transparent;
+}
+.jstree-default-large .jstree-node {
+  min-height: 32px;
+  line-height: 32px;
+  margin-left: 32px;
+  min-width: 32px;
+}
+.jstree-default-large .jstree-anchor {
+  line-height: 32px;
+  height: 32px;
+}
+.jstree-default-large .jstree-icon {
+  width: 32px;
+  height: 32px;
+  line-height: 32px;
+}
+.jstree-default-large .jstree-icon:empty {
+  width: 32px;
+  height: 32px;
+  line-height: 32px;
+}
+.jstree-default-large.jstree-rtl .jstree-node {
+  margin-right: 32px;
+}
+.jstree-default-large .jstree-wholerow {
+  height: 32px;
+}
+.jstree-default-large .jstree-node,
+.jstree-default-large .jstree-icon {
+  background-image: url("32px.png");
+}
+.jstree-default-large .jstree-node {
+  background-position: -288px 0px;
+  background-repeat: repeat-y;
+}
+.jstree-default-large .jstree-last {
+  background: transparent;
+}
+.jstree-default-large .jstree-open > .jstree-ocl {
+  background-position: -128px 0px;
+}
+.jstree-default-large .jstree-closed > .jstree-ocl {
+  background-position: -96px 0px;
+}
+.jstree-default-large .jstree-leaf > .jstree-ocl {
+  background-position: -64px 0px;
+}
+.jstree-default-large .jstree-themeicon {
+  background-position: -256px 0px;
+}
+.jstree-default-large > .jstree-no-dots .jstree-node,
+.jstree-default-large > .jstree-no-dots .jstree-leaf > .jstree-ocl {
+  background: transparent;
+}
+.jstree-default-large > .jstree-no-dots .jstree-open > .jstree-ocl {
+  background-position: -32px 0px;
+}
+.jstree-default-large > .jstree-no-dots .jstree-closed > .jstree-ocl {
+  background-position: 0px 0px;
+}
+.jstree-default-large .jstree-disabled {
+  background: transparent;
+}
+.jstree-default-large .jstree-disabled.jstree-hovered {
+  background: transparent;
+}
+.jstree-default-large .jstree-disabled.jstree-clicked {
+  background: #efefef;
+}
+.jstree-default-large .jstree-checkbox {
+  background-position: -160px 0px;
+}
+.jstree-default-large .jstree-checkbox:hover {
+  background-position: -160px -32px;
+}
+.jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox,
+.jstree-default-large .jstree-checked > .jstree-checkbox {
+  background-position: -224px 0px;
+}
+.jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover,
+.jstree-default-large .jstree-checked > .jstree-checkbox:hover {
+  background-position: -224px -32px;
+}
+.jstree-default-large .jstree-anchor > .jstree-undetermined {
+  background-position: -192px 0px;
+}
+.jstree-default-large .jstree-anchor > .jstree-undetermined:hover {
+  background-position: -192px -32px;
+}
+.jstree-default-large .jstree-checkbox-disabled {
+  opacity: 0.8;
+  filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");
+  /* Firefox 10+ */
+  filter: gray;
+  /* IE6-9 */
+  -webkit-filter: grayscale(100%);
+  /* Chrome 19+ & Safari 6+ */
+}
+.jstree-default-large > .jstree-striped {
+  background-size: auto 64px;
+}
+.jstree-default-large.jstree-rtl .jstree-node {
+  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==");
+  background-position: 100% 1px;
+  background-repeat: repeat-y;
+}
+.jstree-default-large.jstree-rtl .jstree-last {
+  background: transparent;
+}
+.jstree-default-large.jstree-rtl .jstree-open > .jstree-ocl {
+  background-position: -128px -32px;
+}
+.jstree-default-large.jstree-rtl .jstree-closed > .jstree-ocl {
+  background-position: -96px -32px;
+}
+.jstree-default-large.jstree-rtl .jstree-leaf > .jstree-ocl {
+  background-position: -64px -32px;
+}
+.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-node,
+.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl {
+  background: transparent;
+}
+.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl {
+  background-position: -32px -32px;
+}
+.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl {
+  background-position: 0px -32px;
+}
+.jstree-default-large .jstree-themeicon-custom {
+  background-color: transparent;
+  background-image: none;
+  background-position: 0 0;
+}
+.jstree-default-large > .jstree-container-ul .jstree-loading > .jstree-ocl {
+  background: url("throbber.gif") center center no-repeat;
+}
+.jstree-default-large .jstree-file {
+  background: url("32px.png") -96px -64px no-repeat;
+}
+.jstree-default-large .jstree-folder {
+  background: url("32px.png") -256px 0px no-repeat;
+}
+.jstree-default-large > .jstree-container-ul > .jstree-node {
+  margin-left: 0;
+  margin-right: 0;
+}
+#jstree-dnd.jstree-default-large {
+  line-height: 32px;
+  padding: 0 4px;
+}
+#jstree-dnd.jstree-default-large .jstree-ok,
+#jstree-dnd.jstree-default-large .jstree-er {
+  background-image: url("32px.png");
+  background-repeat: no-repeat;
+  background-color: transparent;
+}
+#jstree-dnd.jstree-default-large i {
+  background: transparent;
+  width: 32px;
+  height: 32px;
+  line-height: 32px;
+}
+#jstree-dnd.jstree-default-large .jstree-ok {
+  background-position: 0px -64px;
+}
+#jstree-dnd.jstree-default-large .jstree-er {
+  background-position: -32px -64px;
+}
+.jstree-default-large.jstree-rtl .jstree-node {
+  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==");
+}
+.jstree-default-large.jstree-rtl .jstree-last {
+  background: transparent;
+}
+@media (max-width: 768px) {
+  #jstree-dnd.jstree-dnd-responsive {
+    line-height: 40px;
+    font-weight: bold;
+    font-size: 1.1em;
+    text-shadow: 1px 1px white;
+  }
+  #jstree-dnd.jstree-dnd-responsive > i {
+    background: transparent;
+    width: 40px;
+    height: 40px;
+  }
+  #jstree-dnd.jstree-dnd-responsive > .jstree-ok {
+    background-image: url("40px.png");
+    background-position: 0 -200px;
+    background-size: 120px 240px;
+  }
+  #jstree-dnd.jstree-dnd-responsive > .jstree-er {
+    background-image: url("40px.png");
+    background-position: -40px -200px;
+    background-size: 120px 240px;
+  }
+  #jstree-marker.jstree-dnd-responsive {
+    border-left-width: 10px;
+    border-top-width: 10px;
+    border-bottom-width: 10px;
+    margin-top: -10px;
+  }
+}
+@media (max-width: 768px) {
+  .jstree-default-responsive {
+    /*
+	.jstree-open > .jstree-ocl,
+	.jstree-closed > .jstree-ocl { border-radius:20px; background-color:white; }
+	*/
+  }
+  .jstree-default-responsive .jstree-icon {
+    background-image: url("40px.png");
+  }
+  .jstree-default-responsive .jstree-node,
+  .jstree-default-responsive .jstree-leaf > .jstree-ocl {
+    background: transparent;
+  }
+  .jstree-default-responsive .jstree-node {
+    min-height: 40px;
+    line-height: 40px;
+    margin-left: 40px;
+    min-width: 40px;
+    white-space: nowrap;
+  }
+  .jstree-default-responsive .jstree-anchor {
+    line-height: 40px;
+    height: 40px;
+  }
+  .jstree-default-responsive .jstree-icon,
+  .jstree-default-responsive .jstree-icon:empty {
+    width: 40px;
+    height: 40px;
+    line-height: 40px;
+  }
+  .jstree-default-responsive > .jstree-container-ul > .jstree-node {
+    margin-left: 0;
+  }
+  .jstree-default-responsive.jstree-rtl .jstree-node {
+    margin-left: 0;
+    margin-right: 40px;
+  }
+  .jstree-default-responsive.jstree-rtl .jstree-container-ul > .jstree-node {
+    margin-right: 0;
+  }
+  .jstree-default-responsive .jstree-ocl,
+  .jstree-default-responsive .jstree-themeicon,
+  .jstree-default-responsive .jstree-checkbox {
+    background-size: 120px 240px;
+  }
+  .jstree-default-responsive .jstree-leaf > .jstree-ocl {
+    background: transparent;
+  }
+  .jstree-default-responsive .jstree-open > .jstree-ocl {
+    background-position: 0 0px !important;
+  }
+  .jstree-default-responsive .jstree-closed > .jstree-ocl {
+    background-position: 0 -40px !important;
+  }
+  .jstree-default-responsive.jstree-rtl .jstree-closed > .jstree-ocl {
+    background-position: -40px 0px !important;
+  }
+  .jstree-default-responsive .jstree-themeicon {
+    background-position: -40px -40px;
+  }
+  .jstree-default-responsive .jstree-checkbox,
+  .jstree-default-responsive .jstree-checkbox:hover {
+    background-position: -40px -80px;
+  }
+  .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox,
+  .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover,
+  .jstree-default-responsive .jstree-checked > .jstree-checkbox,
+  .jstree-default-responsive .jstree-checked > .jstree-checkbox:hover {
+    background-position: 0 -80px;
+  }
+  .jstree-default-responsive .jstree-anchor > .jstree-undetermined,
+  .jstree-default-responsive .jstree-anchor > .jstree-undetermined:hover {
+    background-position: 0 -120px;
+  }
+  .jstree-default-responsive .jstree-anchor {
+    font-weight: bold;
+    font-size: 1.1em;
+    text-shadow: 1px 1px white;
+  }
+  .jstree-default-responsive > .jstree-striped {
+    background: transparent;
+  }
+  .jstree-default-responsive .jstree-wholerow {
+    border-top: 1px solid rgba(255, 255, 255, 0.7);
+    border-bottom: 1px solid rgba(64, 64, 64, 0.2);
+    background: #ebebeb;
+    height: 40px;
+  }
+  .jstree-default-responsive .jstree-wholerow-hovered {
+    background: #e7f4f9;
+  }
+  .jstree-default-responsive .jstree-wholerow-clicked {
+    background: #beebff;
+  }
+  .jstree-default-responsive .jstree-children .jstree-last > .jstree-wholerow {
+    box-shadow: inset 0 -6px 3px -5px #666666;
+  }
+  .jstree-default-responsive .jstree-children .jstree-open > .jstree-wholerow {
+    box-shadow: inset 0 6px 3px -5px #666666;
+    border-top: 0;
+  }
+  .jstree-default-responsive .jstree-children .jstree-open + .jstree-open {
+    box-shadow: none;
+  }
+  .jstree-default-responsive .jstree-node,
+  .jstree-default-responsive .jstree-icon,
+  .jstree-default-responsive .jstree-node > .jstree-ocl,
+  .jstree-default-responsive .jstree-themeicon,
+  .jstree-default-responsive .jstree-checkbox {
+    background-image: url("40px.png");
+    background-size: 120px 240px;
+  }
+  .jstree-default-responsive .jstree-node {
+    background-position: -80px 0;
+    background-repeat: repeat-y;
+  }
+  .jstree-default-responsive .jstree-last {
+    background: transparent;
+  }
+  .jstree-default-responsive .jstree-leaf > .jstree-ocl {
+    background-position: -40px -120px;
+  }
+  .jstree-default-responsive .jstree-last > .jstree-ocl {
+    background-position: -40px -160px;
+  }
+  .jstree-default-responsive .jstree-themeicon-custom {
+    background-color: transparent;
+    background-image: none;
+    background-position: 0 0;
+  }
+  .jstree-default-responsive .jstree-file {
+    background: url("40px.png") 0 -160px no-repeat;
+    background-size: 120px 240px;
+  }
+  .jstree-default-responsive .jstree-folder {
+    background: url("40px.png") -40px -40px no-repeat;
+    background-size: 120px 240px;
+  }
+  .jstree-default-responsive > .jstree-container-ul > .jstree-node {
+    margin-left: 0;
+    margin-right: 0;
+  }
+}
diff --git a/public/bower_components/ng-js-tree/ngJsTree.js b/public/bower_components/ng-js-tree/ngJsTree.js
new file mode 100644
index 0000000..0a74df0
--- /dev/null
+++ b/public/bower_components/ng-js-tree/ngJsTree.js
@@ -0,0 +1,200 @@
+(function (angular) {
+    'use strict';
+
+    //// JavaScript Code ////
+    function jsTreeCtrl() {
+        /*jshint validthis:true */
+        var nodeSerialId = 1;
+
+        this.nodesFingerprint = function (e) {
+            if (!e.__uiNodeId) {
+                e.__uiNodeId = nodeSerialId++;
+            }
+            return '' + e.__uiNodeId + (e.id || '') + (e.text || '') + (e.type || '');
+        };
+
+        this.changeWatcher = function (arraySource, tokenFn) {
+            var self;
+            var getTokens = function () {
+                var result = [], token, el;
+                if (arraySource) {
+                    var array = angular.isFunction(arraySource) ? arraySource() : arraySource;
+                    for (var i = 0, n = array.length; i < n; i++) {
+                        el = array[i];
+                        token = tokenFn(el);
+                        map[token] = el;
+                        result.push(token);
+                    }
+                }
+                return result;
+            };
+            // returns elements in that are in a but not in b
+            // subtractAsSets([4, 5, 6], [4, 5, 7]) => [6]
+            var subtractAsSets = function (a, b) {
+                var result = [], inB = {}, i, n;
+                for (i = 0, n = b.length; i < n; i++) {
+                    inB[b[i]] = true;
+                }
+                for (i = 0, n = a.length; i < n; i++) {
+                    if (!inB[a[i]]) {
+                        result.push(a[i]);
+                    }
+                }
+                return result;
+            };
+
+            // Map objects to tokens and vice-versa
+            var map = {};
+
+            var applyChanges = function (newTokens, oldTokens) {
+                var i, n, el, token;
+                var replacedTokens = {};
+                var removedTokens = subtractAsSets(oldTokens, newTokens);
+                for (i = 0, n = removedTokens.length; i < n; i++) {
+                    var removedToken = removedTokens[i];
+                    el = map[removedToken];
+                    delete map[removedToken];
+                    var newToken = tokenFn(el);
+                    // if the element wasn't removed but simply got a new token, its old token will be different from the current one
+                    if (newToken === removedToken) {
+                        self.onRemoved(el);
+                    } else {
+                        replacedTokens[newToken] = removedToken;
+                        self.onChanged(el);
+                    }
+                }
+
+                var addedTokens = subtractAsSets(newTokens, oldTokens);
+                for (i = 0, n = addedTokens.length; i < n; i++) {
+                    token = addedTokens[i];
+                    el = map[token];
+                    if (!replacedTokens[token]) {
+                        self.onAdded(el);
+                    }
+                }
+
+            };
+            self = {
+                subscribe: function (scope, onChanged) {
+                    scope.$watch(getTokens, function (newTokens, oldTokens) {
+                        if (!onChanged || onChanged(newTokens, oldTokens) !== false) {
+                            applyChanges(newTokens, oldTokens);
+                        }
+                    }, true);
+                },
+                onAdded: angular.noop,
+                onChanged: angular.noop,
+                onRemoved: angular.noop
+            };
+            return self;
+        };
+    }
+
+    function jsTreeDirective() {
+        return {
+            restrict: 'A',
+            scope: {
+                treeData: '=ngModel',
+                shouldApply : '&'
+            },
+            controller: 'jsTreeCtrl',
+            link: function link(scope, elm, attrs, controller) {
+
+                var config = null,
+                    nodesWatcher = controller.changeWatcher(scope.treeData, controller.nodesFingerprint);
+
+                var blocked = false;
+
+                function manageEvents(s, e, a) {
+                    if (a.treeEvents) {
+                        var evMap = a.treeEvents.split(';');
+                        for (var i = 0; i < evMap.length; i++) {
+                            if (evMap[i].length > 0) {
+                                var name = evMap[i].split(':')[0];
+                                var evt = name + '.jstree',
+                                    cb = evMap[i].split(':')[1];
+                                s.tree.on(evt, s.$parent.$eval(cb));
+                            }
+                        }
+                    }
+                }
+
+                function getOptions() {
+                    var jsTreeSettings = attrs.jsTree ? scope.$parent.$eval(attrs.jsTree) : {};
+                    config = {};
+                    angular.copy(jsTreeSettings, config);
+                    var result = JSON.stringify(config);
+                    if (config.core) {
+                        config.core.data = scope.treeData;
+                    }
+                    else {
+                        config.core = { data: scope.treeData };
+                    }
+                    return result;
+                }
+
+                scope.destroy = function () {
+                    if (attrs.tree) {
+                        if (attrs.tree.indexOf('.') !== -1) {
+                            var split = attrs.tree.split('.');
+                            scope.tree = scope.$parent[split[0]][split[1]] = elm;
+                        }
+                        else {
+                            scope.tree = scope.$parent[attrs.tree] = elm;
+                        }
+
+                    } else {
+                        scope.tree = elm;
+                    }
+                    scope.tree.jstree('destroy');
+                };
+
+                scope.init = function () {
+                    scope.tree.jstree(config);
+                    manageEvents(scope, elm, attrs);
+                };
+
+                nodesWatcher.onChanged = function (node) {
+                    if (angular.isDefined(scope.tree.jstree(true).set_type)) {
+                        scope.tree.jstree(true).set_type(node.id, node.type);
+                    }
+                    scope.tree.jstree(true).rename_node(node.id, node.text);
+                };
+
+                nodesWatcher.onAdded = function (node) {
+                    while(blocked) {}
+                    blocked = true;
+                    var parent = scope.tree.jstree(true).get_node(node.parent);
+                    var res = scope.tree.jstree(true).create_node(parent, node, 'inside',function() {
+                        blocked = false;
+                    });
+                    if (!res) {
+                        blocked = false;
+                    }
+                };
+
+                nodesWatcher.onRemoved = function (node) {
+                    scope.tree.jstree(true).delete_node(node.id);
+                };
+
+                nodesWatcher.subscribe(scope, function () {
+                    if (!scope.shouldApply) {
+                        return true;
+                    }
+                    return scope.shouldApply();
+                });
+
+                scope.$watch(getOptions, function () {
+                    scope.destroy();
+                    scope.init();
+                });
+            }
+        };
+    }
+
+    //// Angular Code ////
+    var mi = angular.module('ngJsTree',[]);
+    mi.controller('jsTreeCtrl',jsTreeCtrl);
+    mi.directive('jsTree',jsTreeDirective);
+
+})(angular);
diff --git a/public/bower_components/papaparse/papaparse.js b/public/bower_components/papaparse/papaparse.js
new file mode 100644
index 0000000..5d09354
--- /dev/null
+++ b/public/bower_components/papaparse/papaparse.js
@@ -0,0 +1,1403 @@
+/*!
+	Papa Parse
+	v4.1.2
+	https://github.com/mholt/PapaParse
+*/
+(function(global)
+{
+	"use strict";
+
+	var IS_WORKER = !global.document && !!global.postMessage,
+		IS_PAPA_WORKER = IS_WORKER && /(\?|&)papaworker(=|&|$)/.test(global.location.search),
+		LOADED_SYNC = false, AUTO_SCRIPT_PATH;
+	var workers = {}, workerIdCounter = 0;
+
+	var Papa = {};
+
+	Papa.parse = CsvToJson;
+	Papa.unparse = JsonToCsv;
+
+	Papa.RECORD_SEP = String.fromCharCode(30);
+	Papa.UNIT_SEP = String.fromCharCode(31);
+	Papa.BYTE_ORDER_MARK = "\ufeff";
+	Papa.BAD_DELIMITERS = ["\r", "\n", "\"", Papa.BYTE_ORDER_MARK];
+	Papa.WORKERS_SUPPORTED = !IS_WORKER && !!global.Worker;
+	Papa.SCRIPT_PATH = null;	// Must be set by your code if you use workers and this lib is loaded asynchronously
+
+	// Configurable chunk sizes for local and remote files, respectively
+	Papa.LocalChunkSize = 1024 * 1024 * 10;	// 10 MB
+	Papa.RemoteChunkSize = 1024 * 1024 * 5;	// 5 MB
+	Papa.DefaultDelimiter = ",";			// Used if not specified and detection fails
+
+	// Exposed for testing and development only
+	Papa.Parser = Parser;
+	Papa.ParserHandle = ParserHandle;
+	Papa.NetworkStreamer = NetworkStreamer;
+	Papa.FileStreamer = FileStreamer;
+	Papa.StringStreamer = StringStreamer;
+
+	if (typeof module !== 'undefined' && module.exports)
+	{
+		// Export to Node...
+		module.exports = Papa;
+	}
+	else if (isFunction(global.define) && global.define.amd)
+	{
+		// Wireup with RequireJS
+		define(function() { return Papa; });
+	}
+	else
+	{
+		// ...or as browser global
+		global.Papa = Papa;
+	}
+
+	if (global.jQuery)
+	{
+		var $ = global.jQuery;
+		$.fn.parse = function(options)
+		{
+			var config = options.config || {};
+			var queue = [];
+
+			this.each(function(idx)
+			{
+				var supported = $(this).prop('tagName').toUpperCase() == "INPUT"
+								&& $(this).attr('type').toLowerCase() == "file"
+								&& global.FileReader;
+
+				if (!supported || !this.files || this.files.length == 0)
+					return true;	// continue to next input element
+
+				for (var i = 0; i < this.files.length; i++)
+				{
+					queue.push({
+						file: this.files[i],
+						inputElem: this,
+						instanceConfig: $.extend({}, config)
+					});
+				}
+			});
+
+			parseNextFile();	// begin parsing
+			return this;		// maintains chainability
+
+
+			function parseNextFile()
+			{
+				if (queue.length == 0)
+				{
+					if (isFunction(options.complete))
+						options.complete();
+					return;
+				}
+
+				var f = queue[0];
+
+				if (isFunction(options.before))
+				{
+					var returned = options.before(f.file, f.inputElem);
+
+					if (typeof returned === 'object')
+					{
+						if (returned.action == "abort")
+						{
+							error("AbortError", f.file, f.inputElem, returned.reason);
+							return;	// Aborts all queued files immediately
+						}
+						else if (returned.action == "skip")
+						{
+							fileComplete();	// parse the next file in the queue, if any
+							return;
+						}
+						else if (typeof returned.config === 'object')
+							f.instanceConfig = $.extend(f.instanceConfig, returned.config);
+					}
+					else if (returned == "skip")
+					{
+						fileComplete();	// parse the next file in the queue, if any
+						return;
+					}
+				}
+
+				// Wrap up the user's complete callback, if any, so that ours also gets executed
+				var userCompleteFunc = f.instanceConfig.complete;
+				f.instanceConfig.complete = function(results)
+				{
+					if (isFunction(userCompleteFunc))
+						userCompleteFunc(results, f.file, f.inputElem);
+					fileComplete();
+				};
+
+				Papa.parse(f.file, f.instanceConfig);
+			}
+
+			function error(name, file, elem, reason)
+			{
+				if (isFunction(options.error))
+					options.error({name: name}, file, elem, reason);
+			}
+
+			function fileComplete()
+			{
+				queue.splice(0, 1);
+				parseNextFile();
+			}
+		}
+	}
+
+
+	if (IS_PAPA_WORKER)
+	{
+		global.onmessage = workerThreadReceivedMessage;
+	}
+	else if (Papa.WORKERS_SUPPORTED)
+	{
+		AUTO_SCRIPT_PATH = getScriptPath();
+
+		// Check if the script was loaded synchronously
+		if (!document.body)
+		{
+			// Body doesn't exist yet, must be synchronous
+			LOADED_SYNC = true;
+		}
+		else
+		{
+			document.addEventListener('DOMContentLoaded', function () {
+				LOADED_SYNC = true;
+			}, true);
+		}
+	}
+
+
+
+
+	function CsvToJson(_input, _config)
+	{
+		_config = _config || {};
+
+		if (_config.worker && Papa.WORKERS_SUPPORTED)
+		{
+			var w = newWorker();
+
+			w.userStep = _config.step;
+			w.userChunk = _config.chunk;
+			w.userComplete = _config.complete;
+			w.userError = _config.error;
+
+			_config.step = isFunction(_config.step);
+			_config.chunk = isFunction(_config.chunk);
+			_config.complete = isFunction(_config.complete);
+			_config.error = isFunction(_config.error);
+			delete _config.worker;	// prevent infinite loop
+
+			w.postMessage({
+				input: _input,
+				config: _config,
+				workerId: w.id
+			});
+
+			return;
+		}
+
+		var streamer = null;
+		if (typeof _input === 'string')
+		{
+			if (_config.download)
+				streamer = new NetworkStreamer(_config);
+			else
+				streamer = new StringStreamer(_config);
+		}
+		else if ((global.File && _input instanceof File) || _input instanceof Object)	// ...Safari. (see issue #106)
+			streamer = new FileStreamer(_config);
+
+		return streamer.stream(_input);
+	}
+
+
+
+
+
+
+	function JsonToCsv(_input, _config)
+	{
+		var _output = "";
+		var _fields = [];
+
+		// Default configuration
+
+		/** whether to surround every datum with quotes */
+		var _quotes = false;
+
+		/** delimiting character */
+		var _delimiter = ",";
+
+		/** newline character(s) */
+		var _newline = "\r\n";
+
+		unpackConfig();
+
+		if (typeof _input === 'string')
+			_input = JSON.parse(_input);
+
+		if (_input instanceof Array)
+		{
+			if (!_input.length || _input[0] instanceof Array)
+				return serialize(null, _input);
+			else if (typeof _input[0] === 'object')
+				return serialize(objectKeys(_input[0]), _input);
+		}
+		else if (typeof _input === 'object')
+		{
+			if (typeof _input.data === 'string')
+				_input.data = JSON.parse(_input.data);
+
+			if (_input.data instanceof Array)
+			{
+				if (!_input.fields)
+					_input.fields = _input.data[0] instanceof Array
+									? _input.fields
+									: objectKeys(_input.data[0]);
+
+				if (!(_input.data[0] instanceof Array) && typeof _input.data[0] !== 'object')
+					_input.data = [_input.data];	// handles input like [1,2,3] or ["asdf"]
+			}
+
+			return serialize(_input.fields || [], _input.data || []);
+		}
+
+		// Default (any valid paths should return before this)
+		throw "exception: Unable to serialize unrecognized input";
+
+
+		function unpackConfig()
+		{
+			if (typeof _config !== 'object')
+				return;
+
+			if (typeof _config.delimiter === 'string'
+				&& _config.delimiter.length == 1
+				&& Papa.BAD_DELIMITERS.indexOf(_config.delimiter) == -1)
+			{
+				_delimiter = _config.delimiter;
+			}
+
+			if (typeof _config.quotes === 'boolean'
+				|| _config.quotes instanceof Array)
+				_quotes = _config.quotes;
+
+			if (typeof _config.newline === 'string')
+				_newline = _config.newline;
+		}
+
+
+		/** Turns an object's keys into an array */
+		function objectKeys(obj)
+		{
+			if (typeof obj !== 'object')
+				return [];
+			var keys = [];
+			for (var key in obj)
+				keys.push(key);
+			return keys;
+		}
+
+		/** The double for loop that iterates the data and writes out a CSV string including header row */
+		function serialize(fields, data)
+		{
+			var csv = "";
+
+			if (typeof fields === 'string')
+				fields = JSON.parse(fields);
+			if (typeof data === 'string')
+				data = JSON.parse(data);
+
+			var hasHeader = fields instanceof Array && fields.length > 0;
+			var dataKeyedByField = !(data[0] instanceof Array);
+
+			// If there a header row, write it first
+			if (hasHeader)
+			{
+				for (var i = 0; i < fields.length; i++)
+				{
+					if (i > 0)
+						csv += _delimiter;
+					csv += safe(fields[i], i);
+				}
+				if (data.length > 0)
+					csv += _newline;
+			}
+
+			// Then write out the data
+			for (var row = 0; row < data.length; row++)
+			{
+				var maxCol = hasHeader ? fields.length : data[row].length;
+
+				for (var col = 0; col < maxCol; col++)
+				{
+					if (col > 0)
+						csv += _delimiter;
+					var colIdx = hasHeader && dataKeyedByField ? fields[col] : col;
+					csv += safe(data[row][colIdx], col);
+				}
+
+				if (row < data.length - 1)
+					csv += _newline;
+			}
+
+			return csv;
+		}
+
+		/** Encloses a value around quotes if needed (makes a value safe for CSV insertion) */
+		function safe(str, col)
+		{
+			if (typeof str === "undefined" || str === null)
+				return "";
+
+			str = str.toString().replace(/"/g, '""');
+
+			var needsQuotes = (typeof _quotes === 'boolean' && _quotes)
+							|| (_quotes instanceof Array && _quotes[col])
+							|| hasAny(str, Papa.BAD_DELIMITERS)
+							|| str.indexOf(_delimiter) > -1
+							|| str.charAt(0) == ' '
+							|| str.charAt(str.length - 1) == ' ';
+
+			return needsQuotes ? '"' + str + '"' : str;
+		}
+
+		function hasAny(str, substrings)
+		{
+			for (var i = 0; i < substrings.length; i++)
+				if (str.indexOf(substrings[i]) > -1)
+					return true;
+			return false;
+		}
+	}
+
+	/** ChunkStreamer is the base prototype for various streamer implementations. */
+	function ChunkStreamer(config)
+	{
+		this._handle = null;
+		this._paused = false;
+		this._finished = false;
+		this._input = null;
+		this._baseIndex = 0;
+		this._partialLine = "";
+		this._rowCount = 0;
+		this._start = 0;
+		this._nextChunk = null;
+		this.isFirstChunk = true;
+		this._completeResults = {
+			data: [],
+			errors: [],
+			meta: {}
+		};
+		replaceConfig.call(this, config);
+
+		this.parseChunk = function(chunk)
+		{
+			// First chunk pre-processing
+			if (this.isFirstChunk && isFunction(this._config.beforeFirstChunk))
+			{
+				var modifiedChunk = this._config.beforeFirstChunk(chunk);
+				if (modifiedChunk !== undefined)
+					chunk = modifiedChunk;
+			}
+			this.isFirstChunk = false;
+
+			// Rejoin the line we likely just split in two by chunking the file
+			var aggregate = this._partialLine + chunk;
+			this._partialLine = "";
+
+			var results = this._handle.parse(aggregate, this._baseIndex, !this._finished);
+			
+			if (this._handle.paused() || this._handle.aborted())
+				return;
+			
+			var lastIndex = results.meta.cursor;
+			
+			if (!this._finished)
+			{
+				this._partialLine = aggregate.substring(lastIndex - this._baseIndex);
+				this._baseIndex = lastIndex;
+			}
+
+			if (results && results.data)
+				this._rowCount += results.data.length;
+
+			var finishedIncludingPreview = this._finished || (this._config.preview && this._rowCount >= this._config.preview);
+
+			if (IS_PAPA_WORKER)
+			{
+				global.postMessage({
+					results: results,
+					workerId: Papa.WORKER_ID,
+					finished: finishedIncludingPreview
+				});
+			}
+			else if (isFunction(this._config.chunk))
+			{
+				this._config.chunk(results, this._handle);
+				if (this._paused)
+					return;
+				results = undefined;
+				this._completeResults = undefined;
+			}
+
+			if (!this._config.step && !this._config.chunk) {
+				this._completeResults.data = this._completeResults.data.concat(results.data);
+				this._completeResults.errors = this._completeResults.errors.concat(results.errors);
+				this._completeResults.meta = results.meta;
+			}
+
+			if (finishedIncludingPreview && isFunction(this._config.complete) && (!results || !results.meta.aborted))
+				this._config.complete(this._completeResults);
+
+			if (!finishedIncludingPreview && (!results || !results.meta.paused))
+				this._nextChunk();
+
+			return results;
+		};
+
+		this._sendError = function(error)
+		{
+			if (isFunction(this._config.error))
+				this._config.error(error);
+			else if (IS_PAPA_WORKER && this._config.error)
+			{
+				global.postMessage({
+					workerId: Papa.WORKER_ID,
+					error: error,
+					finished: false
+				});
+			}
+		};
+
+		function replaceConfig(config)
+		{
+			// Deep-copy the config so we can edit it
+			var configCopy = copy(config);
+			configCopy.chunkSize = parseInt(configCopy.chunkSize);	// parseInt VERY important so we don't concatenate strings!
+			if (!config.step && !config.chunk)
+				configCopy.chunkSize = null;  // disable Range header if not streaming; bad values break IIS - see issue #196
+			this._handle = new ParserHandle(configCopy);
+			this._handle.streamer = this;
+			this._config = configCopy;	// persist the copy to the caller
+		}
+	}
+
+
+	function NetworkStreamer(config)
+	{
+		config = config || {};
+		if (!config.chunkSize)
+			config.chunkSize = Papa.RemoteChunkSize;
+		ChunkStreamer.call(this, config);
+
+		var xhr;
+
+		if (IS_WORKER)
+		{
+			this._nextChunk = function()
+			{
+				this._readChunk();
+				this._chunkLoaded();
+			};
+		}
+		else
+		{
+			this._nextChunk = function()
+			{
+				this._readChunk();
+			};
+		}
+
+		this.stream = function(url)
+		{
+			this._input = url;
+			this._nextChunk();	// Starts streaming
+		};
+
+		this._readChunk = function()
+		{
+			if (this._finished)
+			{
+				this._chunkLoaded();
+				return;
+			}
+
+			xhr = new XMLHttpRequest();
+			
+			if (!IS_WORKER)
+			{
+				xhr.onload = bindFunction(this._chunkLoaded, this);
+				xhr.onerror = bindFunction(this._chunkError, this);
+			}
+
+			xhr.open("GET", this._input, !IS_WORKER);
+			
+			if (this._config.chunkSize)
+			{
+				var end = this._start + this._config.chunkSize - 1;	// minus one because byte range is inclusive
+				xhr.setRequestHeader("Range", "bytes="+this._start+"-"+end);
+				xhr.setRequestHeader("If-None-Match", "webkit-no-cache"); // https://bugs.webkit.org/show_bug.cgi?id=82672
+			}
+
+			try {
+				xhr.send();
+			}
+			catch (err) {
+				this._chunkError(err.message);
+			}
+
+			if (IS_WORKER && xhr.status == 0)
+				this._chunkError();
+			else
+				this._start += this._config.chunkSize;
+		}
+
+		this._chunkLoaded = function()
+		{
+			if (xhr.readyState != 4)
+				return;
+
+			if (xhr.status < 200 || xhr.status >= 400)
+			{
+				this._chunkError();
+				return;
+			}
+
+			this._finished = !this._config.chunkSize || this._start > getFileSize(xhr);
+			this.parseChunk(xhr.responseText);
+		}
+
+		this._chunkError = function(errorMessage)
+		{
+			var errorText = xhr.statusText || errorMessage;
+			this._sendError(errorText);
+		}
+
+		function getFileSize(xhr)
+		{
+			var contentRange = xhr.getResponseHeader("Content-Range");
+			return parseInt(contentRange.substr(contentRange.lastIndexOf("/") + 1));
+		}
+	}
+	NetworkStreamer.prototype = Object.create(ChunkStreamer.prototype);
+	NetworkStreamer.prototype.constructor = NetworkStreamer;
+
+
+	function FileStreamer(config)
+	{
+		config = config || {};
+		if (!config.chunkSize)
+			config.chunkSize = Papa.LocalChunkSize;
+		ChunkStreamer.call(this, config);
+
+		var reader, slice;
+
+		// FileReader is better than FileReaderSync (even in worker) - see http://stackoverflow.com/q/24708649/1048862
+		// But Firefox is a pill, too - see issue #76: https://github.com/mholt/PapaParse/issues/76
+		var usingAsyncReader = typeof FileReader !== 'undefined';	// Safari doesn't consider it a function - see issue #105
+
+		this.stream = function(file)
+		{
+			this._input = file;
+			slice = file.slice || file.webkitSlice || file.mozSlice;
+
+			if (usingAsyncReader)
+			{
+				reader = new FileReader();		// Preferred method of reading files, even in workers
+				reader.onload = bindFunction(this._chunkLoaded, this);
+				reader.onerror = bindFunction(this._chunkError, this);
+			}
+			else
+				reader = new FileReaderSync();	// Hack for running in a web worker in Firefox
+
+			this._nextChunk();	// Starts streaming
+		};
+
+		this._nextChunk = function()
+		{
+			if (!this._finished && (!this._config.preview || this._rowCount < this._config.preview))
+				this._readChunk();
+		}
+
+		this._readChunk = function()
+		{
+			var input = this._input;
+			if (this._config.chunkSize)
+			{
+				var end = Math.min(this._start + this._config.chunkSize, this._input.size);
+				input = slice.call(input, this._start, end);
+			}
+			var txt = reader.readAsText(input, this._config.encoding);
+			if (!usingAsyncReader)
+				this._chunkLoaded({ target: { result: txt } });	// mimic the async signature
+		}
+
+		this._chunkLoaded = function(event)
+		{
+			// Very important to increment start each time before handling results
+			this._start += this._config.chunkSize;
+			this._finished = !this._config.chunkSize || this._start >= this._input.size;
+			this.parseChunk(event.target.result);
+		}
+
+		this._chunkError = function()
+		{
+			this._sendError(reader.error);
+		}
+
+	}
+	FileStreamer.prototype = Object.create(ChunkStreamer.prototype);
+	FileStreamer.prototype.constructor = FileStreamer;
+
+
+	function StringStreamer(config)
+	{
+		config = config || {};
+		ChunkStreamer.call(this, config);
+
+		var string;
+		var remaining;
+		this.stream = function(s)
+		{
+			string = s;
+			remaining = s;
+			return this._nextChunk();
+		}
+		this._nextChunk = function()
+		{
+			if (this._finished) return;
+			var size = this._config.chunkSize;
+			var chunk = size ? remaining.substr(0, size) : remaining;
+			remaining = size ? remaining.substr(size) : '';
+			this._finished = !remaining;
+			return this.parseChunk(chunk);
+		}
+	}
+	StringStreamer.prototype = Object.create(StringStreamer.prototype);
+	StringStreamer.prototype.constructor = StringStreamer;
+
+
+
+	// Use one ParserHandle per entire CSV file or string
+	function ParserHandle(_config)
+	{
+		// One goal is to minimize the use of regular expressions...
+		var FLOAT = /^\s*-?(\d*\.?\d+|\d+\.?\d*)(e[-+]?\d+)?\s*$/i;
+
+		var self = this;
+		var _stepCounter = 0;	// Number of times step was called (number of rows parsed)
+		var _input;				// The input being parsed
+		var _parser;			// The core parser being used
+		var _paused = false;	// Whether we are paused or not
+		var _aborted = false;   // Whether the parser has aborted or not
+		var _delimiterError;	// Temporary state between delimiter detection and processing results
+		var _fields = [];		// Fields are from the header row of the input, if there is one
+		var _results = {		// The last results returned from the parser
+			data: [],
+			errors: [],
+			meta: {}
+		};
+
+		if (isFunction(_config.step))
+		{
+			var userStep = _config.step;
+			_config.step = function(results)
+			{
+				_results = results;
+
+				if (needsHeaderRow())
+					processResults();
+				else	// only call user's step function after header row
+				{
+					processResults();
+
+					// It's possbile that this line was empty and there's no row here after all
+					if (_results.data.length == 0)
+						return;
+
+					_stepCounter += results.data.length;
+					if (_config.preview && _stepCounter > _config.preview)
+						_parser.abort();
+					else
+						userStep(_results, self);
+				}
+			};
+		}
+
+		/**
+		 * Parses input. Most users won't need, and shouldn't mess with, the baseIndex
+		 * and ignoreLastRow parameters. They are used by streamers (wrapper functions)
+		 * when an input comes in multiple chunks, like from a file.
+		 */
+		this.parse = function(input, baseIndex, ignoreLastRow)
+		{
+			if (!_config.newline)
+				_config.newline = guessLineEndings(input);
+
+			_delimiterError = false;
+			if (!_config.delimiter)
+			{
+				var delimGuess = guessDelimiter(input);
+				if (delimGuess.successful)
+					_config.delimiter = delimGuess.bestDelimiter;
+				else
+				{
+					_delimiterError = true;	// add error after parsing (otherwise it would be overwritten)
+					_config.delimiter = Papa.DefaultDelimiter;
+				}
+				_results.meta.delimiter = _config.delimiter;
+			}
+
+			var parserConfig = copy(_config);
+			if (_config.preview && _config.header)
+				parserConfig.preview++;	// to compensate for header row
+
+			_input = input;
+			_parser = new Parser(parserConfig);
+			_results = _parser.parse(_input, baseIndex, ignoreLastRow);
+			processResults();
+			return _paused ? { meta: { paused: true } } : (_results || { meta: { paused: false } });
+		};
+
+		this.paused = function()
+		{
+			return _paused;
+		};
+
+		this.pause = function()
+		{
+			_paused = true;
+			_parser.abort();
+			_input = _input.substr(_parser.getCharIndex());
+		};
+
+		this.resume = function()
+		{
+			_paused = false;
+			self.streamer.parseChunk(_input);
+		};
+
+		this.aborted = function () {
+			return _aborted;
+		}
+
+		this.abort = function()
+		{
+			_aborted = true;
+			_parser.abort();
+			_results.meta.aborted = true;
+			if (isFunction(_config.complete))
+				_config.complete(_results);
+			_input = "";
+		};
+
+		function processResults()
+		{
+			if (_results && _delimiterError)
+			{
+				addError("Delimiter", "UndetectableDelimiter", "Unable to auto-detect delimiting character; defaulted to '"+Papa.DefaultDelimiter+"'");
+				_delimiterError = false;
+			}
+
+			if (_config.skipEmptyLines)
+			{
+				for (var i = 0; i < _results.data.length; i++)
+					if (_results.data[i].length == 1 && _results.data[i][0] == "")
+						_results.data.splice(i--, 1);
+			}
+
+			if (needsHeaderRow())
+				fillHeaderFields();
+
+			return applyHeaderAndDynamicTyping();
+		}
+
+		function needsHeaderRow()
+		{
+			return _config.header && _fields.length == 0;
+		}
+
+		function fillHeaderFields()
+		{
+			if (!_results)
+				return;
+			for (var i = 0; needsHeaderRow() && i < _results.data.length; i++)
+				for (var j = 0; j < _results.data[i].length; j++)
+					_fields.push(_results.data[i][j]);
+			_results.data.splice(0, 1);
+		}
+
+		function applyHeaderAndDynamicTyping()
+		{
+			if (!_results || (!_config.header && !_config.dynamicTyping))
+				return _results;
+
+			for (var i = 0; i < _results.data.length; i++)
+			{
+				var row = {};
+
+				for (var j = 0; j < _results.data[i].length; j++)
+				{
+					if (_config.dynamicTyping)
+					{
+						var value = _results.data[i][j];
+						if (value == "true" || value == "TRUE")
+							_results.data[i][j] = true;
+						else if (value == "false" || value == "FALSE")
+							_results.data[i][j] = false;
+						else
+							_results.data[i][j] = tryParseFloat(value);
+					}
+
+					if (_config.header)
+					{
+						if (j >= _fields.length)
+						{
+							if (!row["__parsed_extra"])
+								row["__parsed_extra"] = [];
+							row["__parsed_extra"].push(_results.data[i][j]);
+						}
+						else
+							row[_fields[j]] = _results.data[i][j];
+					}
+				}
+
+				if (_config.header)
+				{
+					_results.data[i] = row;
+					if (j > _fields.length)
+						addError("FieldMismatch", "TooManyFields", "Too many fields: expected " + _fields.length + " fields but parsed " + j, i);
+					else if (j < _fields.length)
+						addError("FieldMismatch", "TooFewFields", "Too few fields: expected " + _fields.length + " fields but parsed " + j, i);
+				}
+			}
+
+			if (_config.header && _results.meta)
+				_results.meta.fields = _fields;
+			return _results;
+		}
+
+		function guessDelimiter(input)
+		{
+			var delimChoices = [",", "\t", "|", ";", Papa.RECORD_SEP, Papa.UNIT_SEP];
+			var bestDelim, bestDelta, fieldCountPrevRow;
+
+			for (var i = 0; i < delimChoices.length; i++)
+			{
+				var delim = delimChoices[i];
+				var delta = 0, avgFieldCount = 0;
+				fieldCountPrevRow = undefined;
+
+				var preview = new Parser({
+					delimiter: delim,
+					preview: 10
+				}).parse(input);
+
+				for (var j = 0; j < preview.data.length; j++)
+				{
+					var fieldCount = preview.data[j].length;
+					avgFieldCount += fieldCount;
+
+					if (typeof fieldCountPrevRow === 'undefined')
+					{
+						fieldCountPrevRow = fieldCount;
+						continue;
+					}
+					else if (fieldCount > 1)
+					{
+						delta += Math.abs(fieldCount - fieldCountPrevRow);
+						fieldCountPrevRow = fieldCount;
+					}
+				}
+
+				if (preview.data.length > 0)
+					avgFieldCount /= preview.data.length;
+
+				if ((typeof bestDelta === 'undefined' || delta < bestDelta)
+					&& avgFieldCount > 1.99)
+				{
+					bestDelta = delta;
+					bestDelim = delim;
+				}
+			}
+
+			_config.delimiter = bestDelim;
+
+			return {
+				successful: !!bestDelim,
+				bestDelimiter: bestDelim
+			}
+		}
+
+		function guessLineEndings(input)
+		{
+			input = input.substr(0, 1024*1024);	// max length 1 MB
+
+			var r = input.split('\r');
+
+			if (r.length == 1)
+				return '\n';
+
+			var numWithN = 0;
+			for (var i = 0; i < r.length; i++)
+			{
+				if (r[i][0] == '\n')
+					numWithN++;
+			}
+
+			return numWithN >= r.length / 2 ? '\r\n' : '\r';
+		}
+
+		function tryParseFloat(val)
+		{
+			var isNumber = FLOAT.test(val);
+			return isNumber ? parseFloat(val) : val;
+		}
+
+		function addError(type, code, msg, row)
+		{
+			_results.errors.push({
+				type: type,
+				code: code,
+				message: msg,
+				row: row
+			});
+		}
+	}
+
+
+
+
+
+	/** The core parser implements speedy and correct CSV parsing */
+	function Parser(config)
+	{
+		// Unpack the config object
+		config = config || {};
+		var delim = config.delimiter;
+		var newline = config.newline;
+		var comments = config.comments;
+		var step = config.step;
+		var preview = config.preview;
+		var fastMode = config.fastMode;
+
+		// Delimiter must be valid
+		if (typeof delim !== 'string'
+			|| Papa.BAD_DELIMITERS.indexOf(delim) > -1)
+			delim = ",";
+
+		// Comment character must be valid
+		if (comments === delim)
+			throw "Comment character same as delimiter";
+		else if (comments === true)
+			comments = "#";
+		else if (typeof comments !== 'string'
+			|| Papa.BAD_DELIMITERS.indexOf(comments) > -1)
+			comments = false;
+
+		// Newline must be valid: \r, \n, or \r\n
+		if (newline != '\n' && newline != '\r' && newline != '\r\n')
+			newline = '\n';
+
+		// We're gonna need these at the Parser scope
+		var cursor = 0;
+		var aborted = false;
+
+		this.parse = function(input, baseIndex, ignoreLastRow)
+		{
+			// For some reason, in Chrome, this speeds things up (!?)
+			if (typeof input !== 'string')
+				throw "Input must be a string";
+
+			// We don't need to compute some of these every time parse() is called,
+			// but having them in a more local scope seems to perform better
+			var inputLen = input.length,
+				delimLen = delim.length,
+				newlineLen = newline.length,
+				commentsLen = comments.length;
+			var stepIsFunction = typeof step === 'function';
+
+			// Establish starting state
+			cursor = 0;
+			var data = [], errors = [], row = [], lastCursor = 0;
+
+			if (!input)
+				return returnable();
+
+			if (fastMode || (fastMode !== false && input.indexOf('"') === -1))
+			{
+				var rows = input.split(newline);
+				for (var i = 0; i < rows.length; i++)
+				{
+					var row = rows[i];
+					cursor += row.length;
+					if (i !== rows.length - 1)
+						cursor += newline.length;
+					else if (ignoreLastRow)
+						return returnable();
+					if (comments && row.substr(0, commentsLen) == comments)
+						continue;
+					if (stepIsFunction)
+					{
+						data = [];
+						pushRow(row.split(delim));
+						doStep();
+						if (aborted)
+							return returnable();
+					}
+					else
+						pushRow(row.split(delim));
+					if (preview && i >= preview)
+					{
+						data = data.slice(0, preview);
+						return returnable(true);
+					}
+				}
+				return returnable();
+			}
+
+			var nextDelim = input.indexOf(delim, cursor);
+			var nextNewline = input.indexOf(newline, cursor);
+
+			// Parser loop
+			for (;;)
+			{
+				// Field has opening quote
+				if (input[cursor] == '"')
+				{
+					// Start our search for the closing quote where the cursor is
+					var quoteSearch = cursor;
+
+					// Skip the opening quote
+					cursor++;
+
+					for (;;)
+					{
+						// Find closing quote
+						var quoteSearch = input.indexOf('"', quoteSearch+1);
+
+						if (quoteSearch === -1)
+						{
+							if (!ignoreLastRow) {
+								// No closing quote... what a pity
+								errors.push({
+									type: "Quotes",
+									code: "MissingQuotes",
+									message: "Quoted field unterminated",
+									row: data.length,	// row has yet to be inserted
+									index: cursor
+								});
+							}
+							return finish();
+						}
+
+						if (quoteSearch === inputLen-1)
+						{
+							// Closing quote at EOF
+							var value = input.substring(cursor, quoteSearch).replace(/""/g, '"');
+							return finish(value);
+						}
+
+						// If this quote is escaped, it's part of the data; skip it
+						if (input[quoteSearch+1] == '"')
+						{
+							quoteSearch++;
+							continue;
+						}
+
+						if (input[quoteSearch+1] == delim)
+						{
+							// Closing quote followed by delimiter
+							row.push(input.substring(cursor, quoteSearch).replace(/""/g, '"'));
+							cursor = quoteSearch + 1 + delimLen;
+							nextDelim = input.indexOf(delim, cursor);
+							nextNewline = input.indexOf(newline, cursor);
+							break;
+						}
+
+						if (input.substr(quoteSearch+1, newlineLen) === newline)
+						{
+							// Closing quote followed by newline
+							row.push(input.substring(cursor, quoteSearch).replace(/""/g, '"'));
+							saveRow(quoteSearch + 1 + newlineLen);
+							nextDelim = input.indexOf(delim, cursor);	// because we may have skipped the nextDelim in the quoted field
+
+							if (stepIsFunction)
+							{
+								doStep();
+								if (aborted)
+									return returnable();
+							}
+							
+							if (preview && data.length >= preview)
+								return returnable(true);
+
+							break;
+						}
+					}
+
+					continue;
+				}
+
+				// Comment found at start of new line
+				if (comments && row.length === 0 && input.substr(cursor, commentsLen) === comments)
+				{
+					if (nextNewline == -1)	// Comment ends at EOF
+						return returnable();
+					cursor = nextNewline + newlineLen;
+					nextNewline = input.indexOf(newline, cursor);
+					nextDelim = input.indexOf(delim, cursor);
+					continue;
+				}
+
+				// Next delimiter comes before next newline, so we've reached end of field
+				if (nextDelim !== -1 && (nextDelim < nextNewline || nextNewline === -1))
+				{
+					row.push(input.substring(cursor, nextDelim));
+					cursor = nextDelim + delimLen;
+					nextDelim = input.indexOf(delim, cursor);
+					continue;
+				}
+
+				// End of row
+				if (nextNewline !== -1)
+				{
+					row.push(input.substring(cursor, nextNewline));
+					saveRow(nextNewline + newlineLen);
+
+					if (stepIsFunction)
+					{
+						doStep();
+						if (aborted)
+							return returnable();
+					}
+
+					if (preview && data.length >= preview)
+						return returnable(true);
+
+					continue;
+				}
+
+				break;
+			}
+
+
+			return finish();
+
+
+			function pushRow(row)
+			{
+				data.push(row);
+				lastCursor = cursor;
+			}
+
+			/**
+			 * Appends the remaining input from cursor to the end into
+			 * row, saves the row, calls step, and returns the results.
+			 */
+			function finish(value)
+			{
+				if (ignoreLastRow)
+					return returnable();
+				if (typeof value === 'undefined')
+					value = input.substr(cursor);
+				row.push(value);
+				cursor = inputLen;	// important in case parsing is paused
+				pushRow(row);
+				if (stepIsFunction)
+					doStep();
+				return returnable();
+			}
+
+			/**
+			 * Appends the current row to the results. It sets the cursor
+			 * to newCursor and finds the nextNewline. The caller should
+			 * take care to execute user's step function and check for
+			 * preview and end parsing if necessary.
+			 */
+			function saveRow(newCursor)
+			{
+				cursor = newCursor;
+				pushRow(row);
+				row = [];
+				nextNewline = input.indexOf(newline, cursor);
+			}
+
+			/** Returns an object with the results, errors, and meta. */
+			function returnable(stopped)
+			{
+				return {
+					data: data,
+					errors: errors,
+					meta: {
+						delimiter: delim,
+						linebreak: newline,
+						aborted: aborted,
+						truncated: !!stopped,
+						cursor: lastCursor + (baseIndex || 0)
+					}
+				};
+			}
+
+			/** Executes the user's step function and resets data & errors. */
+			function doStep()
+			{
+				step(returnable());
+				data = [], errors = [];
+			}
+		};
+
+		/** Sets the abort flag */
+		this.abort = function()
+		{
+			aborted = true;
+		};
+
+		/** Gets the cursor position */
+		this.getCharIndex = function()
+		{
+			return cursor;
+		};
+	}
+
+
+	// If you need to load Papa Parse asynchronously and you also need worker threads, hard-code
+	// the script path here. See: https://github.com/mholt/PapaParse/issues/87#issuecomment-57885358
+	function getScriptPath()
+	{
+		var scripts = document.getElementsByTagName('script');
+		return scripts.length ? scripts[scripts.length - 1].src : '';
+	}
+
+	function newWorker()
+	{
+		if (!Papa.WORKERS_SUPPORTED)
+			return false;
+		if (!LOADED_SYNC && Papa.SCRIPT_PATH === null)
+			throw new Error(
+				'Script path cannot be determined automatically when Papa Parse is loaded asynchronously. ' +
+				'You need to set Papa.SCRIPT_PATH manually.'
+			);
+		var workerUrl = Papa.SCRIPT_PATH || AUTO_SCRIPT_PATH;
+		// Append "papaworker" to the search string to tell papaparse that this is our worker.
+		workerUrl += (workerUrl.indexOf('?') !== -1 ? '&' : '?') + 'papaworker';
+		var w = new global.Worker(workerUrl);
+		w.onmessage = mainThreadReceivedMessage;
+		w.id = workerIdCounter++;
+		workers[w.id] = w;
+		return w;
+	}
+
+	/** Callback when main thread receives a message */
+	function mainThreadReceivedMessage(e)
+	{
+		var msg = e.data;
+		var worker = workers[msg.workerId];
+		var aborted = false;
+
+		if (msg.error)
+			worker.userError(msg.error, msg.file);
+		else if (msg.results && msg.results.data)
+		{
+			var abort = function() {
+				aborted = true;
+				completeWorker(msg.workerId, { data: [], errors: [], meta: { aborted: true } });
+			};
+
+			var handle = {
+				abort: abort,
+				pause: notImplemented,
+				resume: notImplemented
+			};
+
+			if (isFunction(worker.userStep))
+			{
+				for (var i = 0; i < msg.results.data.length; i++)
+				{
+					worker.userStep({
+						data: [msg.results.data[i]],
+						errors: msg.results.errors,
+						meta: msg.results.meta
+					}, handle);
+					if (aborted)
+						break;
+				}
+				delete msg.results;	// free memory ASAP
+			}
+			else if (isFunction(worker.userChunk))
+			{
+				worker.userChunk(msg.results, handle, msg.file);
+				delete msg.results;
+			}
+		}
+
+		if (msg.finished && !aborted)
+			completeWorker(msg.workerId, msg.results);
+	}
+
+	function completeWorker(workerId, results) {
+		var worker = workers[workerId];
+		if (isFunction(worker.userComplete))
+			worker.userComplete(results);
+		worker.terminate();
+		delete workers[workerId];
+	}
+
+	function notImplemented() {
+		throw "Not implemented.";
+	}
+
+	/** Callback when worker thread receives a message */
+	function workerThreadReceivedMessage(e)
+	{
+		var msg = e.data;
+
+		if (typeof Papa.WORKER_ID === 'undefined' && msg)
+			Papa.WORKER_ID = msg.workerId;
+
+		if (typeof msg.input === 'string')
+		{
+			global.postMessage({
+				workerId: Papa.WORKER_ID,
+				results: Papa.parse(msg.input, msg.config),
+				finished: true
+			});
+		}
+		else if ((global.File && msg.input instanceof File) || msg.input instanceof Object)	// thank you, Safari (see issue #106)
+		{
+			var results = Papa.parse(msg.input, msg.config);
+			if (results)
+				global.postMessage({
+					workerId: Papa.WORKER_ID,
+					results: results,
+					finished: true
+				});
+		}
+	}
+
+	/** Makes a deep copy of an array or object (mostly) */
+	function copy(obj)
+	{
+		if (typeof obj !== 'object')
+			return obj;
+		var cpy = obj instanceof Array ? [] : {};
+		for (var key in obj)
+			cpy[key] = copy(obj[key]);
+		return cpy;
+	}
+
+	function bindFunction(f, self)
+	{
+		return function() { f.apply(self, arguments); };
+	}
+
+	function isFunction(func)
+	{
+		return typeof func === 'function';
+	}
+})(typeof window !== 'undefined' ? window : this);
diff --git a/public/index.html b/public/index.html
index 491e421..ba6e6e2 100644
--- a/public/index.html
+++ b/public/index.html
@@ -12,8 +12,8 @@
     <meta name="description" content="">
     <meta name="viewport" content="width=device-width">
     <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
-    <link rel="stylesheet" href="app/ff092e3b.vendor.css">
-    <link rel="stylesheet" href="app/9073265e.app.css">
+    <link rel="stylesheet" href="app/6e9756ac.vendor.css">
+    <link rel="stylesheet" href="app/dc39fef2.app.css">
 
     <!-- BEGIN DYMANICLY LOADED CSS FILES (all plugin and page related styles must be loaded between GLOBAL and THEME css files ) -->
     <link id="ng_load_plugins_before"/>
@@ -59,9 +59,9 @@
     <script src="bower_components/es5-shim/es5-shim.js"></script>
     <script src="bower_components/json3/lib/json3.min.js"></script>
     <![endif]-->
-    <script src="app/8f45a8c3.vendor.js"></script>
+    <script src="app/fa0dad2a.vendor.js"></script>
 
-    <script src="app/a64e9fe8.app.js"></script>
+    <script src="app/30a38ffd.app.js"></script>
 
     <!-- BEGIN JAVASCRIPTS(Load javascripts at bottom, this will reduce page load time) -->
     <!-- BEGIN CORE PLUGINS -->
diff --git a/release-notes/changelog_0.0.14.txt b/release-notes/changelog_0.0.14.txt
deleted file mode 100644
index 6cb4e5b..0000000
--- a/release-notes/changelog_0.0.14.txt
+++ /dev/null
@@ -1,52 +0,0 @@
-# xCALLY MOTION Changelog
-
-- * cf44538 - 2015-12-21: New Version 
-- * 7031e61 - 2015-12-21: Manage Update 
-- * 39a57b8 - 2015-12-21: update controller function for compatibility 
-- * eab16ba - 2015-12-21: Updated contact manager 
-- * 22bd792 - 2015-12-21: server side config socketio.js 
-- * 481a45a - 2015-12-21: server side bower.json 
-- * aaa7b73 - 2015-12-21: server side models 
-- * 053030b - 2015-12-21: server side config smtp 
-- * 790b16e - 2015-12-21: server side components chatty 
-- * 18f3367 - 2015-12-21: server side api 
-- * 122d687 - 2015-12-21: client side components 
-- * 3d0b3d1 - 2015-12-21: client side app.js 
-- * 5ff9ce0 - 2015-12-21: client side app 
-- * 4799f81 - 2015-12-18: salesforce: subject, body and field configuration, custom filter for fields 
-- * 05a9e60 - 2015-12-17: Updated contact manager and triggers service 
-- * 094e572 - 2015-12-17: salesforce: account wizard 
-- * 3a8fae9 - 2015-12-17: remove node-salesforce package 
-- * e324ea1 - 2015-12-17: Salesforce: account list 
-- * bc6bbcd - 2015-12-17: add jsforce dependencies 
-- * f65d9aa - 2015-12-17: add remote validation on desk.com account wizard 
-- * 50c047b - 2015-12-17: SMTP init 
-- * 7a30973 - 2015-12-17: new version 
-- * ef263d0 - 2015-12-17: dependancies update 
-- * 90831ca - 2015-12-16: server side smtp 
-- * c3fb836 - 2015-12-16: client side mail 
-- * 4f89e39 - 2015-12-16: server side api 
-- * cd1f7de - 2015-12-16: client app mail 
-- * 039434b - 2015-12-16: Changed triggers service; Added call status for triggers conditions. 
-- * 4fb44b0 - 2015-12-16: server side app.js 
-- * 4e6cafb - 2015-12-16: server side config 
-- * 4a15a39 - 2015-12-16: server side models 
-- * cf03b95 - 2015-12-16: server side config 
-- * e5efa4f - 2015-12-16: server side api 
-- * 6ef18d6 - 2015-12-16: client side components quickSidebar 
-- * 1ac76f7 - 2015-12-16: client assets languages 
-- * ca03462 - 2015-12-16: client side app mail inbox 
-- * db25e17 - 2015-12-16: desk.com: add system fields 
-- * 78e3a7f - 2015-12-16: grunt file update: add &#x27;/login&#x27; 
-- * 9590fb1 - 2015-12-16: desk.com: field configuration (only custom fields) 
-- * 4937169 - 2015-12-16: desk.com: subject and description configuration 
-- * 5a5aead - 2015-12-15: fixed callysquare undo 
-- * bf7fa27 - 2015-12-15: fixed cally square design overflow 
-- * c4d70ec - 2015-12-15: Language update 
-- * d77c09d - 2015-12-15: Desk integration: view settings 
-- * 9f29458 - 2015-12-15: changed chat settings label (remote address) 
-- * 4706f4d - 2015-12-15: remove comment 
-- * c8840c4 - 2015-12-15: Language update 
-- * 18ac799 - 2015-12-14: comment route and socket.io 
-- * 972448f - 2015-12-14: Desk.com integration: add wizard 
-
diff --git a/release-notes/changelog_0.0.15.txt b/release-notes/changelog_0.0.15.txt
new file mode 100644
index 0000000..19505ff
--- /dev/null
+++ b/release-notes/changelog_0.0.15.txt
@@ -0,0 +1,25 @@
+# xCALLY MOTION Changelog
+
+- * 4143fce - 2016-01-11: Updated reports APIs. 
+- * 7d148f3 - 2016-01-11: bower.json 
+- * d7331e9 - 2016-01-11: server side .yo-rc.json 
+- * d375539 - 2016-01-11: server side app.js + routes.js 
+- * e70d044 - 2016-01-11: server side models 
+- * 5127ffe - 2016-01-11: server side config 
+- * b773540 - 2016-01-11: server side API 
+- * 00f85ce - 2016-01-11: client side components 
+- * 6c68dbd - 2016-01-11: client side assets 
+- * a42a9fa - 2016-01-11: client side app modules 
+- * 8025ad7 - 2016-01-11: client components sidebar templates path 
+- * d804d0a - 2016-01-11: languages update 
+- * cc4abc0 - 2016-01-11: package.son 
+- * 77404a1 - 2016-01-08: Updated ReportTree seed 
+- * c342b5f - 2016-01-08: Report section tree view 
+- * 2ea412c - 2016-01-08: add integration action for voice trigger 
+- * 5ce445c - 2016-01-08: change foreign key to handle AccountId column for each integration 
+- * 0974ad1 - 2016-01-08: add random percentage for &quot;market&quot; 
+- * 2f5d1bc - 2016-01-05: Market update (item disposition) 
+- * 41cb71c - 2016-01-05: Update integration: model, route Update market: fake market only with our integrations Add mocha as dev dependencies 
+- * fa560ae - 2016-01-05: add danger notification (xAlert) 
+- * ce14827 - 2016-01-04: Ui grid table with remote sorting, filtering and grouping for reports. 
+
diff --git a/server/api/chat_enquiry/enquiry.spec.js b/server/api/chat_enquiry/enquiry.spec.js
deleted file mode 100644
index 7ee4f1d..0000000
--- a/server/api/chat_enquiry/enquiry.spec.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/chat/enquiries', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/chat/enquiries')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
diff --git a/server/api/chat_message/chat_message.controller.js b/server/api/chat_message/chat_message.controller.js
index f6a480e..958ca19 100644
--- a/server/api/chat_message/chat_message.controller.js
+++ b/server/api/chat_message/chat_message.controller.js
@@ -9,34 +9,34 @@ var ChatMessage = require('../../models').ChatMessage;
 var ChatVisitor = require('../../models').ChatVisitor;
 
 // Get list of chat_messages
-exports.index = function(req, res) {
+exports.index = function (req, res) {
   ChatMessage
     .findAll()
-    .then(function(chat_messages) {
+    .then(function (chat_messages) {
       return res.status(200).send(chat_messages);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
-// Get a single chat_message
-exports.show = function(req, res) {
+// Get a single chatMessage
+exports.show = function (req, res) {
   ChatMessage
     .findById(req.params.id)
-    .then(function(chat_message) {
-      if (!chat_message) {
+    .then(function (chatMessage) {
+      if (!chatMessage) {
         return res.sendStatus(404);
       }
-      return res.send(chat_message);
+      return res.send(chatMessage);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
-// Creates a new chat_message in the DB.
-exports.create = function(req, res, next) {
+// Creates a new chatMessage in the DB.
+exports.create = function (req, res, next) {
   // if (req.body.ChatRoomId && req.body.to) {
   //   return handleError(res, new Error('Select ChatRoomId or to'));
   // } else if (req.body.to) {
@@ -197,8 +197,8 @@ exports.create = function(req, res, next) {
   //       email: req.user.email,
   //       fullname: req.user.fullname
   //     }, req.body))
-  //     .then(function(chat_message) {
-  //       return res.status(201).send(chat_message);
+  //     .then(function(chatMessage) {
+  //       return res.status(201).send(chatMessage);
   //     })
   //     .catch(function(err) {
   //       return handleError(res, err);
@@ -210,56 +210,54 @@ exports.create = function(req, res, next) {
     .create(_.merge(req.body, {
       UserId: req.user.id
     }))
-    .then(function(chatMessage) {
+    .then(function (chatMessage) {
       return res.status(201).send(chatMessage);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
-// Updates an existing chat_message in the DB.
-exports.update = function(req, res) {
+// Updates an existing chatMessage in the DB.
+exports.update = function (req, res) {
   if (req.body.id) {
     delete req.body.id;
   }
-  ChatMessage
+
+  return ChatMessage
     .findById(req.params.id)
-    .then(function(chat_message) {
-      if (!chat_message) {
+    .then(function (chatMessage) {
+      if (!chatMessage) {
         return res.sendStatus(404);
       }
-      var updated = _.merge(chat_message, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(chat_message);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
+      var updated = _.merge(chatMessage, req.body);
+      return updated.save();
+    })
+    .then(function (chatMessage) {
+      return res.status(200).send(chatMessage);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
-// Deletes a chat_message from the DB.
-exports.destroy = function(req, res) {
+// Deletes a chatMessage from the DB.
+exports.destroy = function (req, res) {
   ChatMessage
     .findById(req.params.id)
-    .then(function(chat_message) {
-      if (!chat_message) {
+    .then(function (chatMessage) {
+      if (!chatMessage) {
         return res.sendStatus(404);
       }
-      chat_message.destroy()
-        .then(function() {
+      chatMessage.destroy()
+        .then(function () {
           return res.sendStatus(204);
         })
-        .catch(function(err) {
+        .catch(function (err) {
           return handleError(res, err);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
diff --git a/server/api/chat_queue/chat_queue.controller.js b/server/api/chat_queue/chat_queue.controller.js
index 47409b7..a2eaab3 100644
--- a/server/api/chat_queue/chat_queue.controller.js
+++ b/server/api/chat_queue/chat_queue.controller.js
@@ -7,7 +7,7 @@ var ChatQueue = require('../../models').ChatQueue;
 var UserHasChatQueue = require('../../models').UserHasChatQueue;
 
 // Get list of mailQueues
-exports.index = function(req, res) {
+exports.index = function (req, res) {
 
   var attributes = ['description', 'name', 'timeout', 'strategy'];
   var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
@@ -22,38 +22,38 @@ exports.index = function(req, res) {
     }]
   };
 
-  _.forIn(req.query, function(value, key) {
+  _.forIn(req.query, function (value, key) {
     switch (key) {
-      case 'per_page':
-      case 'page':
-        break;
-      case 'sort_by':
-        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
-        break;
-      case 'sort_order':
-        break;
-      case '$':
-        query.where.$or = [];
-        attributes.forEach(function(attribute) {
-          var tmp = {};
-          tmp[attribute] = {
-            $like: '%' + value + '%'
-          };
-
-          query.where.$or.push(tmp);
-        });
-        break;
-      default:
-        query.where[key] = {
-          $like: {}
+    case 'per_page':
+    case 'page':
+      break;
+    case 'sort_by':
+      query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+      break;
+    case 'sort_order':
+      break;
+    case '$':
+      query.where.$or = [];
+      attributes.forEach(function (attribute) {
+        var tmp = {};
+        tmp[attribute] = {
+          $like: '%' + value + '%'
         };
-        query.where[key].$like = '%' + value + '%';
+
+        query.where.$or.push(tmp);
+      });
+      break;
+    default:
+      query.where[key] = {
+        $like: {}
+      };
+      query.where[key].$like = '%' + value + '%';
     }
   });
 
   ChatQueue
     .findAndCountAll(query)
-    .then(function(result) {
+    .then(function (result) {
       var total_pages = Math.ceil(result.count / per_page);
       var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
       var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
@@ -67,159 +67,145 @@ exports.index = function(req, res) {
       });
 
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Get list of my chat_rooms
-exports.me = function(req, res, next) {
+exports.me = function (req, res, next) {
   UserHasChatQueue
     .findAll({
       where: {
         UserId: req.user.id
       }
     })
-    .then(function(userHasChatQueues) {
+    .then(function (userHasChatQueues) {
       return res.status(200).send(userHasChatQueues);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Get a single chat_queue
-exports.show = function(req, res) {
+exports.show = function (req, res) {
   ChatQueue
     .findById(req.params.id)
-    .then(function(chat_queue) {
+    .then(function (chat_queue) {
       if (!chat_queue) {
         return res.sendStatus(404);
       }
       return res.send(chat_queue);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Creates a new chat_queue in the DB.
-exports.create = function(req, res) {
+exports.create = function (req, res) {
   ChatQueue
     .create(req.body)
-    .then(function(chat_queue) {
+    .then(function (chat_queue) {
       return res.status(201).send(chat_queue);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Updates an existing chat_queue in the DB.
-exports.update = function(req, res) {
+exports.update = function (req, res) {
   if (req.body.id) {
     delete req.body.id;
   }
   ChatQueue
-    .find({
-      where: {
-        id: req.params.id
-      }
-    })
-    .then(function(chat_queue) {
+    .findById(req.params.id)
+    .then(function (chat_queue) {
       if (!chat_queue) {
         return res.sendStatus(404);
       }
       var updated = _.merge(chat_queue, req.body);
       updated.save()
-        .then(function() {
+        .then(function () {
           return res.status(200).send(chat_queue);
         })
-        .catch(function(err) {
+        .catch(function (err) {
           return handleError(res, err);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Updates an existing user_has_chatQueue in the DB.
-exports.addAgents = function(req, res, next) {
-  ChatQueue
+exports.addAgents = function (req, res, next) {
+  return ChatQueue
     .findById(req.params.id)
-    .then(function(chatQueue) {
+    .then(function (chatQueue) {
       if (chatQueue) {
-        // QUEUE FOUND
-        // ADD AGENTS
-        chatQueue
-          .addUsers(req.body.agents)
-          .then(function() {
-            return res.sendStatus(200);
-          })
-          .catch(function(err) {
-            return next(err);
+        return chatQueue
+          .addUsers(req.body.agents, {
+            individualHooks: true
           });
       } else {
-        return next(new Error('no mail queue found'));
+        throw new Error('No mail queue found');
       }
     })
-    .catch(function(err) {
+    .then(function () {
+      return res.sendStatus(200);
+    })
+    .catch(function (err) {
       return next(err);
     });
 };
 
-exports.removeAgents = function(req, res, next) {
-  ChatQueue
+exports.removeAgents = function (req, res, next) {
+  return ChatQueue
     .findById(req.params.id)
-    .then(function(chatQueue) {
+    .then(function (chatQueue) {
       if (chatQueue) {
-        // QUEUE FOUND
-        // REMOVE AGENTS
-        chatQueue
-          .removeUsers(req.body.agents)
-          .then(function() {
-            return res.sendStatus(200);
-          })
-          .catch(function(err) {
-            return next(err);
+        return chatQueue
+          .removeUsers(req.body.agents, {
+            individualHooks: true
           });
       } else {
-        return next(new Error('no mail queue found'));
+        throw new Error('no mail queue found');
       }
     })
-    .catch(function(err) {
+    .then(function () {
+      return res.sendStatus(200);
+    })
+    .catch(function (err) {
       return next(err);
     });
 };
 
 // Deletes a chat_queue from the DB.
-exports.destroy = function(req, res) {
+exports.destroy = function (req, res) {
   ChatQueue
-    .find({
-      where: {
-        id: req.params.id
-      }
-    })
-    .then(function(chat_queue) {
+    .findById(req.params.id)
+    .then(function (chat_queue) {
       if (!chat_queue) {
         return res.sendStatus(404);
       }
       chat_queue.destroy()
-        .then(function() {
+        .then(function () {
           return res.sendStatus(204);
         })
-        .catch(function(err) {
+        .catch(function (err) {
           return handleError(res, err);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Deletes a agent from the DB.
-exports.bulkDestroy = function(req, res) {
+exports.bulkDestroy = function (req, res) {
   ChatQueue
     .destroy({
       where: {
@@ -227,10 +213,10 @@ exports.bulkDestroy = function(req, res) {
       },
       individualHooks: true
     })
-    .then(function() {
+    .then(function () {
       return res.sendStatus(204);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
diff --git a/server/api/chat_queue/chat_queue.socket.js b/server/api/chat_queue/chat_queue.socket.js
index 09fe401..2e7f5d4 100644
--- a/server/api/chat_queue/chat_queue.socket.js
+++ b/server/api/chat_queue/chat_queue.socket.js
@@ -4,13 +4,13 @@
 
 'use strict';
 
-var chat_queue = require('../../models').ChatQueue;
+var chatQueue = require('../../models').ChatQueue;
 
-exports.register = function(socket) {
-  chat_queue.afterCreate(function (doc) {
+exports.register = function (socket) {
+  chatQueue.afterCreate(function (doc) {
     onSave(socket, doc);
   });
-  chat_queue.afterDestroy(function (doc) {
+  chatQueue.afterDestroy(function (doc) {
     onRemove(socket, doc);
   });
 }
diff --git a/server/api/chat_room/chat_room.controller.js b/server/api/chat_room/chat_room.controller.js
index 89baad4..e423038 100644
--- a/server/api/chat_room/chat_room.controller.js
+++ b/server/api/chat_room/chat_room.controller.js
@@ -13,7 +13,7 @@ var UserHasChatRoom = require('../../models').UserHasChatRoom;
 
 // Get list of chat_rooms
 exports.index = function (req, res) {
-  ChatRoom
+  return ChatRoom
     .findAll({
       include: [User, ChatMessage, ChatVisitor]
     })
@@ -27,10 +27,10 @@ exports.index = function (req, res) {
 
 // Get list of my chat_rooms
 exports.me = function (req, res) {
-  User
+  return User
     .findById(req.user.id)
     .then(function (user) {
-      user
+      return user
         .getChatRooms({
           include: [{
             model: ChatVisitor,
@@ -39,17 +39,14 @@ exports.me = function (req, res) {
             model: User,
             attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal']
           }]
-        })
-        .then(function (chatRooms) {
-          if (!chatRooms) {
-            return res.sendStatus(404);
-          }
-          return res.send(chatRooms);
-        })
-        .catch(function (err) {
-          return handleError(res, err);
         });
     })
+    .then(function (chatRooms) {
+      if (!chatRooms) {
+        return res.sendStatus(404);
+      }
+      return res.send(chatRooms);
+    })
     .catch(function (err) {
       return handleError(res, err);
     });
@@ -57,15 +54,21 @@ exports.me = function (req, res) {
 
 // Get a single chatRoom
 exports.show = function (req, res) {
-  ChatRoom
+  return ChatRoom
     .findById(req.params.id, {
       include: [{
         model: ChatMessage,
-        include: [User, ChatVisitor]
-      }],
-      order: [
-        [ChatMessage, 'id']
-      ]
+        include: [{
+          model: ChatVisitor,
+          attributes: ['id', 'email', 'fullname']
+        }, {
+          model: User,
+          attributes: ['id', 'email', 'name', 'fullname']
+        }]
+      }, {
+        model: User,
+        attributes: ['id', 'email', 'name', 'fullname']
+      }]
     })
     .then(function (chatRoom) {
       if (!chatRoom) {
@@ -80,7 +83,10 @@ exports.show = function (req, res) {
 
 // Get a single chatRoom by users
 exports.getRoomByUsers = function (req, res, next) {
-  ChatRoom
+
+  var _chatRoom;
+
+  return ChatRoom
     .findOrCreate({
       where: {
         token: md5(JSON.stringify(req.query.users.sort())).toString('base64')
@@ -93,6 +99,9 @@ exports.getRoomByUsers = function (req, res, next) {
       include: [{
         model: ChatMessage,
         include: [{
+          model: ChatVisitor,
+          attributes: ['id', 'email', 'fullname']
+        }, {
           model: User,
           attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal']
         }]
@@ -102,29 +111,24 @@ exports.getRoomByUsers = function (req, res, next) {
       }]
     })
     .spread(function (chatRoom, created) {
+      _chatRoom = chatRoom;
+      // _chatRoom.dataValues.ChatMessages = [];
       if (created) {
-        chatRoom
-          .setUsers(req.query.users)
-          .then(function () {
-            chatRoom
-              .getUsers()
-              .then(function (users) {
-                return res.status(200).send(_.merge(chatRoom.dataValues, {
-                  Users: users,
-                  ChatMessages: []
-                }));
-              })
-              .catch(function (err) {
-                return handleError(res, err);
-              });
-          })
-          .catch(function (err) {
-            return handleError(res, err);
-          });
+        return _chatRoom
+          .setUsers(req.query.users);
       } else {
-        return res.status(200).send(chatRoom);
+        return;
       }
     })
+    .then(function () {
+      return _chatRoom
+        .getUsers();
+    })
+    .then(function (users) {
+      return res.status(200).send(_.merge(_chatRoom.dataValues, {
+        Users: users
+      }));
+    })
     .catch(function (err) {
       return handleError(res, err);
     });
@@ -381,44 +385,43 @@ exports.update = function (req, res) {
 
 // Updates an existing chatRoom in the DB.
 exports.updateUsers = function (req, res) {
+  var _chatRoom;
+
   if (req.body.id) {
     delete req.body.id;
   }
 
-  ChatRoom
+  return ChatRoom
     .findById(req.params.id)
     .then(function (chatRoom) {
-      if (!chatRoom) {
+      if (!chatRoom || !req.body.users) {
         return res.sendStatus(404);
       }
-      chatRoom
+      return chatRoom;
+    })
+    .then(function (chatRoom) {
+      return chatRoom
         .update({
           token: md5(JSON.stringify(req.body.users.sort())).toString('base64')
-        })
-        .then(function (chatRoom) {
-          chatRoom
-            .setUsers(req.body.users.sort())
-            .then(function () {
-              chatRoom
-                .getUsers()
-                .then(function (users) {
-                  return res.status(200).send(_.merge(chatRoom.dataValues, {
-                    Users: users,
-                    ChatMessages: []
-                  }));
-                })
-                .catch(function (err) {
-                  return handleError(res, err);
-                });
-            })
-            .catch(function (err) {
-              return handleError(res, err);
-            });
-        })
-        .catch(function (err) {
-          return handleError(res, err);
         });
     })
+    .then(function (chatRoom) {
+      _chatRoom = chatRoom;
+      return chatRoom
+        .setUsers(req.body.users.sort(), {
+          individualHooks: true
+        });
+    })
+    .then(function () {
+      return _chatRoom
+        .getUsers();
+    })
+    .then(function (users) {
+      return res.status(200).send(_.merge(_chatRoom.dataValues, {
+        Users: users,
+        ChatMessages: []
+      }));
+    })
     .catch(function (err) {
       return handleError(res, err);
     });
diff --git a/server/api/chat_room/chat_room.controller.js.back b/server/api/chat_room/chat_room.controller.js.back
deleted file mode 100644
index 6e74338..0000000
--- a/server/api/chat_room/chat_room.controller.js.back
+++ /dev/null
@@ -1,286 +0,0 @@
-'use strict';
-
-var _ = require('lodash');
-var md5 = require('md5');
-var moment = require('moment');
-
-var User = require('../../models').User;
-var ChatRoom = require('../../models').ChatRoom;
-var ChatMessage = require('../../models').ChatMessage;
-var ChatVisitor = require('../../models').ChatVisitor;
-var UserHasChatRoom = require('../../models').UserHasChatRoom;
-
-
-// Get list of chat_rooms
-exports.index = function(req, res) {
-  ChatRoom
-    .findAll({
-      include: [User, ChatMessage, ChatVisitor]
-    })
-    .then(function(chat_rooms) {
-      return res.status(200).send(chat_rooms);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get list of my chat_rooms
-exports.me = function(req, res) {
-  var userId = req.user.id;
-
-  ChatRoom
-    .findAll({
-      include: [{
-        model: User,
-        where: {
-          id: userId
-        }
-      }, {
-        model: ChatMessage,
-      }, {
-        model: ChatVisitor,
-      }]
-    })
-    .then(function(chatRooms) {
-      if (!chatRooms) {
-        return res.sendStatus(401);
-      }
-      res.status(200).send(chatRooms);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single chat_room
-exports.show = function(req, res) {
-  ChatRoom
-    .findById(req.params.id, {
-      include: [User, ChatMessage, ChatVisitor]
-    })
-    .then(function(chat_room) {
-      if (!chat_room) {
-        return res.sendStatus(404);
-      }
-      return res.send(chat_room);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new chat_room in the DB.
-exports.create = function(req, res) {
-  if (req.body.to) {
-
-    var token;
-    var participants = {
-      users: {
-        ids: []
-      },
-      visitor: {}
-    };
-
-    switch (req.body.type) {
-      case 'internal':
-
-        if (!req.body.to.isArray) {
-          req.body.to = [parseInt(req.body.to, 10)];
-        }
-
-        participants.users.ids = req.body.to;
-
-        if (!_.contains(req.body.to, req.user.id)) {
-          participants.users.ids.push(req.user.id);
-        }
-
-        participants.users.ids.sort();
-
-        token = md5(JSON.stringify(participants)).toString(
-          'base64');
-
-        participants.users.fullnames = [];
-
-        User
-          .findAll({
-            where: {
-              id: {
-                $in: req.body.to
-              }
-            },
-            attributes: ['id', 'fullname']
-          })
-          .then(function(users) {
-
-            _.sortBy(users, 'id').forEach(function(item, index) {
-              participants.users.fullnames.push(item.fullname);
-            });
-
-            ChatRoom
-              .findOrCreate({
-                where: {
-                  token: token
-                },
-                defaults: _.merge({
-                  token: token,
-                  participants: JSON.stringify(participants)
-                }, req.body),
-                include: [{
-                  model: ChatMessage
-                }]
-              })
-              .spread(function(chatRoom, created) {
-
-                if (created) {
-
-                  chatRoom
-                    .setUsers(participants.users.ids)
-                    .then(function() {
-                      return res.status(201).send(chatRoom);
-                    })
-                    .catch(function(err) {
-                      return handleError(res, err);
-                    });
-                } else {
-                  return res.status(201).send(chatRoom);
-                }
-
-              })
-              .catch(function(err) {
-                return handleError(res, err);
-              });
-          })
-          .catch(function(err) {
-            return handleError(res, err);
-          });
-
-        break;
-      case 'external':
-
-        participants.visitor.id = req.body.to;
-        participants.users.ids.push(req.user.id);
-        participants.users.ids.sort();
-
-        token = md5(JSON.stringify(participants)).toString('base64');
-
-        participants.users.fullnames = [req.user.fullname];
-
-        ChatVisitor
-          .findById(req.body.to, {
-            attributes: ['id', 'fullname', 'email', 'referer']
-          })
-          .then(function(chatVisitor) {
-            participants.visitor.fullname = chatVisitor.fullname;
-            participants.visitor.referer = chatVisitor.referer;
-            participants.visitor.email = chatVisitor.email;
-
-            ChatRoom
-              .findOrCreate({
-                where: {
-                  token: token
-                },
-                defaults: _.merge({
-                  token: token,
-                  participants: JSON.stringify(participants)
-                }, req.body),
-                include: [{
-                  model: ChatMessage
-                }, {
-                  model: ChatVisitor
-                }, {
-                  model: User,
-                }]
-              })
-              .spread(function(chatRoom, created) {
-                if (created) {
-
-                  chatRoom
-                    .setUsers(participants.users.ids)
-                    .then(function() {
-                      chatRoom
-                        .setChatVisitor(participants.visitor.id)
-                        .then(function() {
-                          return res.status(201).send(chatRoom);
-                        })
-                        .catch(function(err) {
-                          return handleError(res, err);
-                        });
-                    })
-                    .catch(function(err) {
-                      return handleError(res, err);
-                    });
-                } else {
-                  return res.status(201).send(chatRoom);
-                }
-
-              })
-              .catch(function(err) {
-                return handleError(res, err);
-              });
-          })
-          .catch(function(err) {
-            return handleError(res, err);
-          });
-
-        break;
-      default:
-    }
-  } else {
-    return handleError(res, new Error('field "to" omitted'));
-  }
-};
-
-// Updates an existing chat_room in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-
-  ChatRoom
-    .findById(req.params.id)
-    .then(function(chat_room) {
-      if (!chat_room) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(chat_room, req.body);
-      updated
-        .save()
-        .then(function() {
-          return res.status(200).send(chat_room);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a chat_room from the DB.
-exports.destroy = function(req, res) {
-  ChatRoom
-    .findById(req.params.id)
-    .then(function(chat_room) {
-      if (!chat_room) {
-        return res.sendStatus(404);
-      }
-
-      chat_room
-        .destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
diff --git a/server/api/chat_room/chat_room.socket.js b/server/api/chat_room/chat_room.socket.js
index 789fd9a..2f75a98 100644
--- a/server/api/chat_room/chat_room.socket.js
+++ b/server/api/chat_room/chat_room.socket.js
@@ -9,14 +9,14 @@ var ChatRoom = require('../../models').ChatRoom;
 var ChatMessage = require('../../models').ChatMessage;
 var ChatVisitor = require('../../models').ChatVisitor;
 
-exports.register = function(socket) {
-  ChatRoom.afterCreate(function(doc) {
+exports.register = function (socket) {
+  ChatRoom.afterCreate(function (doc) {
     onSave(socket, doc);
   });
-  ChatRoom.afterUpdate(function(doc) {
+  ChatRoom.afterUpdate(function (doc) {
     onSave(socket, doc);
   });
-  ChatRoom.afterDestroy(function(doc) {
+  ChatRoom.afterDestroy(function (doc) {
     onRemove(socket, doc);
   });
 }
diff --git a/server/api/chat_website/chat_website.controller.js b/server/api/chat_website/chat_website.controller.js
index d5e900a..b9339a4 100644
--- a/server/api/chat_website/chat_website.controller.js
+++ b/server/api/chat_website/chat_website.controller.js
@@ -11,7 +11,7 @@ var ChatApplication = require('../../models').ChatApplication;
 var snippet = require('../../components/xchatty').snippet;
 
 // Get list of chat_websites
-exports.index = function(req, res, next) {
+exports.index = function (req, res, next) {
 
   var attributes = ['name', 'address', 'description', 'remote'];
   var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
@@ -23,38 +23,38 @@ exports.index = function(req, res, next) {
     offset: page * per_page
   };
 
-  _.forIn(req.query, function(value, key) {
+  _.forIn(req.query, function (value, key) {
     switch (key) {
-      case 'per_page':
-      case 'page':
-        break;
-      case 'sort_by':
-        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
-        break;
-      case 'sort_order':
-        break;
-      case '$':
-        query.where.$or = [];
-        attributes.forEach(function(attribute) {
-          var tmp = {};
-          tmp[attribute] = {
-            $like: '%' + value + '%'
-          };
-
-          query.where.$or.push(tmp);
-        });
-        break;
-      default:
-        query.where[key] = {
-          $like: {}
+    case 'per_page':
+    case 'page':
+      break;
+    case 'sort_by':
+      query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+      break;
+    case 'sort_order':
+      break;
+    case '$':
+      query.where.$or = [];
+      attributes.forEach(function (attribute) {
+        var tmp = {};
+        tmp[attribute] = {
+          $like: '%' + value + '%'
         };
-        query.where[key].$like = '%' + value + '%';
+
+        query.where.$or.push(tmp);
+      });
+      break;
+    default:
+      query.where[key] = {
+        $like: {}
+      };
+      query.where[key].$like = '%' + value + '%';
     }
   });
 
   ChatWebsite
     .findAndCountAll(query)
-    .then(function(result) {
+    .then(function (result) {
 
       var total_pages = Math.ceil(result.count / per_page);
       var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
@@ -69,7 +69,7 @@ exports.index = function(req, res, next) {
       });
 
     })
-    .catch(function(err) {
+    .catch(function (err) {
       res.status(500).send({
         error: 'Something blew up!'
       });
@@ -77,25 +77,25 @@ exports.index = function(req, res, next) {
 };
 
 // Get a single chat_website
-exports.show = function(req, res) {
+exports.show = function (req, res) {
   ChatWebsite
     .findById(req.params.id)
-    .then(function(chat_website) {
+    .then(function (chat_website) {
       if (!chat_website) {
         return res.sendStatus(404);
       }
       return res.send(chat_website);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Get a snippet for chat_website
-exports.getSnippetCode = function(req, res) {
+exports.getSnippetCode = function (req, res) {
   ChatWebsite
     .findById(req.params.id)
-    .then(function(chat_website) {
+    .then(function (chat_website) {
       var configSnippet = {
         remote: chat_website.remote,
         websiteId: req.params.id
@@ -103,86 +103,74 @@ exports.getSnippetCode = function(req, res) {
       var html = Mustache.render(snippet, configSnippet);
       return res.send(html);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Creates a new chat_website in the DB.
-exports.create = function(req, res) {
+exports.create = function (req, res) {
   ChatWebsite
     .create(req.body)
-    .then(function(chat_website) {
+    .then(function (chat_website) {
       return res.status(201).send(chat_website);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Updates an existing chat_website in the DB.
-exports.update = function(req, res) {
+exports.update = function (req, res) {
   if (req.body.id) {
     delete req.body.id;
   }
-  ChatWebsite
-    .find({
-      where: {
-        id: req.params.id
-      }
-    })
-    .then(function(chat_website) {
+
+  return ChatWebsite
+    .findById(req.params.id)
+    .then(function (chat_website) {
       if (!chat_website) {
         return res.sendStatus(404);
       }
-      chat_website.updateAttributes(req.body)
-        .then(function(chat_website) {
+
+      return chat_website
+        .update(req.body)
+        .then(function (chat_website) {
           return res.status(200).send(chat_website);
         })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-      // var updated = _.merge(chat_website, req.body);
-      // updated.save()
-      //   .then(function() {
-      //     return res.status(200).send(chat_website);
-      //   })
-      //   .catch(function(err) {
-      //     return handleError(res, err);
-      //   });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Deletes a chat_website from the DB.
-exports.destroy = function(req, res) {
+exports.destroy = function (req, res) {
   ChatWebsite
     .find({
       where: {
         id: req.params.id
       }
     })
-    .then(function(chat_website) {
+    .then(function (chat_website) {
       if (!chat_website) {
         return res.sendStatus(404);
       }
       chat_website.destroy()
-        .then(function() {
+        .then(function () {
           return res.sendStatus(204);
         })
-        .catch(function(err) {
+        .catch(function (err) {
           return handleError(res, err);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Sort Mail Applications
-exports.sortApplications = function(req, res, next) {
+exports.sortApplications = function (req, res, next) {
 
   ChatApplication
     .findAll({
@@ -190,24 +178,24 @@ exports.sortApplications = function(req, res, next) {
         id: req.body.applications
       }
     })
-    .then(function(chatApplications) {
+    .then(function (chatApplications) {
       var tmpChatApplications = chatApplications;
 
       async.waterfall([
-        function(callback) {
+        function (callback) {
           ChatApplication
             .destroy({
               where: {
                 id: req.body.applications
               }
-            }).then(function() {
+            }).then(function () {
               callback();
             })
-            .catch(function(err) {
+            .catch(function (err) {
               callback(err);
             });
         },
-        function(callback) {
+        function (callback) {
           var sortedApplications = [];
           for (var i = 0; i < req.body.applications.length; i++) {
             var tmpChatApplication = _.find(tmpChatApplications, {
@@ -221,14 +209,14 @@ exports.sortApplications = function(req, res, next) {
 
           ChatApplication
             .bulkCreate(sortedApplications)
-            .then(function() {
+            .then(function () {
               callback();
             })
-            .catch(function(err) {
+            .catch(function (err) {
               callback(err);
             });
         },
-        function(callback) {
+        function (callback) {
           ChatApplication
             .findAll({
               where: {
@@ -239,14 +227,14 @@ exports.sortApplications = function(req, res, next) {
                 all: true
               }]
             })
-            .then(function(chatApplications) {
+            .then(function (chatApplications) {
               callback(null, chatApplications);
             })
-            .catch(function(err) {
+            .catch(function (err) {
               callback(err);
             });
         }
-      ], function(err, result) {
+      ], function (err, result) {
         if (err) {
           return handleError(res, err);
         } else {
@@ -254,13 +242,13 @@ exports.sortApplications = function(req, res, next) {
         }
       });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Deletes a agent from the DB.
-exports.bulkDestroy = function(req, res) {
+exports.bulkDestroy = function (req, res) {
   ChatWebsite
     .destroy({
       where: {
@@ -268,10 +256,10 @@ exports.bulkDestroy = function(req, res) {
       },
       individualHooks: true
     })
-    .then(function() {
+    .then(function () {
       return res.sendStatus(204);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
diff --git a/server/api/company/company.spec.js b/server/api/company/company.spec.js
index 99d2fa5..37c8889 100644
--- a/server/api/company/company.spec.js
+++ b/server/api/company/company.spec.js
@@ -4,11 +4,11 @@ var should = require('should');
 var app = require('../../app');
 var request = require('supertest');
 
-describe('GET /api/companies', function() {
+describe('GET /api/contactmanager/companies', function() {
 
   it('should respond with JSON array', function(done) {
     request(app)
-      .get('/api/companies')
+      .get('/api/contactmanager/companies')
       .expect(200)
       .expect('Content-Type', /json/)
       .end(function(err, res) {
diff --git a/server/api/contact_manager/contact_manager.controller.js b/server/api/contact_manager/contact_manager.controller.js
index 67d2001..27e39f6 100644
--- a/server/api/contact_manager/contact_manager.controller.js
+++ b/server/api/contact_manager/contact_manager.controller.js
@@ -4,6 +4,7 @@ var _ = require('lodash');
 var Contact = require('../../models').Contact;
 var ContactPhone = require('../../models').ContactPhone;
 var ContactEmail = require('../../models').ContactEmail;
+var CustomField = require('../../models').CustomField;
 var ReportCall = require('../../models').ReportCall;
 var ReportCallHistory = require('../../models').history.ReportCallHistory;
 var ReportMailSession = require('../../models').ReportMailSession;
@@ -58,11 +59,25 @@ exports.index = function(req, res) {
 
   Contact
     .findAndCountAll(query)
-    .then(function(managed_contacts) {
-      return res.status(200).send(managed_contacts);
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
     })
     .catch(function(err) {
-      return handleError(res, err);
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
     });
 };
 
@@ -126,6 +141,9 @@ exports.show = function(req, res) {
             all: true
           }]
         }]
+      }, {
+        model: CustomField,
+        as: 'CustomFields'
       }]
     })
     .then(function(managed_contact) {
@@ -166,10 +184,12 @@ exports.contactValidation = function(req, res) {
       return handleError(res, err);
     });
 };
+
 // Creates a new managed_contact in the DB.
 exports.create = function(req, res, next) {
   var newPhones = [],
-    newEmails = [];
+    newEmails = [],
+    newCustomFields = {};
   Tag.findAll()
     .then(function(tags) {
       var newTags = [];
@@ -190,24 +210,18 @@ exports.create = function(req, res, next) {
         }
       }
       req.body.UserId = req.user.id;
-      console.log('body', req.body);
       var phones = _.uniq(_.pluck(req.body.Phones, 'phone'));
-      console.log(phones);
-      var emails = _.uniq(_.pluck(req.body.Emails, 'email'));
-      console.log(emails);
       var contactPhones = [];
-      req.body.Phones.forEach(function(elem) {
-        console.log('elem', elem);
+      phones.forEach(function(elem) {
         contactPhones.push(ContactPhone.findOrCreate({
           where: {
-            phone: elem.phone
+            phone: elem
           },
           defaults: {
-            phone: elem.phone
+            phone: elem
           }
         }));
       });
-      console.log('return cP');
       return contactPhones;
     })
     .all()
@@ -217,18 +231,17 @@ exports.create = function(req, res, next) {
       });
 
       var contactEmails = [];
-      req.body.Emails.forEach(function(elem) {
-        console.log('elem', elem);
+      var emails = _.uniq(_.pluck(req.body.Emails, 'email'));
+      emails.forEach(function(elem) {
         contactEmails.push(ContactEmail.findOrCreate({
           where: {
-            email: elem.email
+            email: elem
           },
           defaults: {
-            email: elem.email
+            email: elem
           }
         }));
       });
-
       return contactEmails;
     })
     .all()
@@ -238,6 +251,8 @@ exports.create = function(req, res, next) {
       });
       delete req.body.Phones;
       delete req.body.Emails;
+      newCustomFields = _.clone(req.body.customFields);
+      delete req.body.customFields;
 
       return Contact.create(req.body);
     })
@@ -248,6 +263,22 @@ exports.create = function(req, res, next) {
       return [contact, contact.setEmails(newEmails)];
     })
     .spread(function(contact) {
+      var customFieldsIds = _.keys(newCustomFields);
+      return [contact, CustomField.findAll({
+        where: {
+          id: customFieldsIds
+        }
+      })];
+    })
+    .spread(function(contact, customFields) {
+      customFields.forEach(function(elem) {
+        elem.ContactHasCustomField = {
+          value: newCustomFields[String(elem.id)]
+        }
+      });
+      return [contact, contact.setCustomFields(customFields)];
+    })
+    .spread(function(contact) {
       return res.status(201).send(contact);
     })
     .catch(function(err) {
@@ -258,137 +289,14 @@ exports.create = function(req, res, next) {
 
 // Updates an existing managed_contact in the DB.
 exports.update = function(req, res, next) {
-  req.body.Phones = _.uniq(_.pluck(req.body.Phones, 'phone'));
-  req.body.Emails = _.uniq(_.pluck(req.body.Emails, 'email'));
-  console.log(req.body.Phones);
-  console.log(req.body.Emails);
-  Contact.findAll({
-      where: {
-        $or: {
-          '$Phones.phone$': req.body.Phones,
-          '$Emails.email$': req.body.Emails
-        },
-        id: {
-          $ne: req.params.id
-        }
-      },
-      include: [{
-        all: true
-      }]
-    })
-    .then(function(contacts) {
-      console.log(contacts);
-      if (!contacts) {
-        return res.sendStatus(404);
-      }
-      if (contacts.length > 0) {
-        return res.status(500).send({
-          message: 'MESSAGE_EXIST_PHONE_OR_EMAIL'
-        });
-      }
-      Tag.findAll()
-        .then(function(tags) {
-          var newTags = [];
-          var tagList = _.pluck(_.pluck(tags, 'dataValues'), 'name');
-          if (req.body.tags) {
-            var contactTags = req.body.tags.split(',');
-            contactTags.forEach(function(elem) {
-              if (!_.includes(tags, elem)) {
-                newTags.push({
-                  name: elem
-                });
-              }
-            });
-            if (newTags.length) {
-              Tag.bulkCreate(newTags, {
-                individualHooks: true
-              });
-            }
-          }
-          delete req.body.id;
-          var phones = _.map(req.body.Phones, function(elem) {
-            return {
-              phone: elem,
-              ContactId: req.params.id
-            };
-          });
-          var emails = _.map(req.body.Emails, function(elem) {
-            return {
-              email: elem,
-              ContactId: req.params.id
-            };
-          });
-          delete req.body.Phones;
-          delete req.body.Emails;
-          return sequelize.transaction(function(t) {
-              return Contact.update(req.body, {
-                  where: {
-                    id: req.params.id
-                  }
-                }, {
-                  transaction: t,
-                  include: [{
-                    all: true
-                  }]
-                })
-                .then(function() {
-                  return ContactPhone
-                    .destroy({
-                      where: {
-                        ContactId: req.params.id
-                      }
-                    }, {
-                      transaction: t
-                    })
-                    .then(function() {
-                      return ContactPhone
-                        .bulkCreate(phones, {
-                          transaction: t
-                        })
-                        .then(function() {
-                          return ContactEmail
-                            .destroy({
-                              where: {
-                                ContactId: req.params.id
-                              }
-                            }, {
-                              transaction: t
-                            })
-                            .then(function() {
-                              return ContactEmail
-                                .bulkCreate(emails, {
-                                  transaction: t
-                                })
-                                .then(function() {
-                                  return res.sendStatus(201);
-                                })
-                            })
-                        })
-                    })
-                })
-            })
-            .catch(function(err) {
-              return handleError(res, err);
-            });
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-// Join contacts info in the DB.
-exports.joinContacts = function(req, res, next) {
-  if (req.body.tags) {
-    Tag.findAll()
-      .then(function(tags) {
-        var newTags = [];
-        var tagList = _.pluck(_.pluck(tags, 'dataValues'), 'name');
+  var newPhones = [],
+    newEmails = [],
+    newCustomFields = {};
+  Tag.findAll()
+    .then(function(tags) {
+      var newTags = [];
+      var tagList = _.pluck(_.pluck(tags, 'dataValues'), 'name');
+      if (req.body.tags) {
         var contactTags = req.body.tags.split(',');
         contactTags.forEach(function(elem) {
           if (!_.includes(tags, elem)) {
@@ -402,65 +310,169 @@ exports.joinContacts = function(req, res, next) {
             individualHooks: true
           });
         }
-      })
-      .catch(function(err) {
-        return handleError(res, err);
+      }
+      var contactPhones = [];
+      var phones = _.uniq(_.pluck(req.body.Phones, 'phone'));
+      phones.forEach(function(elem) {
+        contactPhones.push(ContactPhone.findOrCreate({
+          where: {
+            phone: elem
+          },
+          defaults: {
+            phone: elem
+          }
+        }));
       });
-  }
-  var updateId = req.body.id;
-  delete req.body.id;
-  var phones = _.map(req.body.Phones, function(elem) {
-    return {
-      phone: elem.phone,
-      ContactId: updateId
-    };
-  });
-  var emails = _.map(req.body.Emails, function(elem) {
-    return {
-      email: elem.email,
-      ContactId: updateId
-    };
-  });
-  delete req.body.Phones;
-  delete req.body.Emails;
-  return sequelize.transaction(function(t) {
-      return Contact.update(req.body, {
+      return contactPhones;
+    })
+    .all()
+    .then(function(res) {
+      newPhones = _.map(res, function(elem) {
+        return elem[0];
+      });
+
+      var contactEmails = [];
+      var emails = _.uniq(_.pluck(req.body.Emails, 'email'));
+      emails.forEach(function(elem) {
+        contactEmails.push(ContactEmail.findOrCreate({
           where: {
-            id: updateId
+            email: elem
+          },
+          defaults: {
+            email: elem
           }
-        }, {
-          transaction: t,
-          include: [{
-            all: true
-          }]
-        })
-        .then(function(contact) {
-          return ContactPhone
-            .bulkCreate(phones, {
-              transaction: t
-            })
-            .then(function() {
-              return ContactEmail
-                .bulkCreate(emails, {
-                  transaction: t
-                })
-                .then(function() {
-                  return Contact.findById(updateId, {
-                      transaction: t
-                    })
-                    .then(function(contact) {
-                      return res.status(201).send(contact);
-                    })
-                })
-            })
-        })
+        }));
+      });
+      return contactEmails;
+    })
+    .all()
+    .then(function(res) {
+      newEmails = _.map(res, function(elem) {
+        return elem[0];
+      });
+      delete req.body.Phones;
+      delete req.body.Emails;
+      newCustomFields = _.clone(req.body.customFields);
+      delete req.body.customFields;
+      delete req.body.CustomFields;
+      var updateId = req.body.id;
+      delete req.body.id;
+
+      return Contact.findById(updateId);
+    })
+    .then(function(contact) {
+      return [contact, contact.setPhones(newPhones)];
+    })
+    .spread(function(contact) {
+      return [contact, contact.setEmails(newEmails)];
+    })
+    .spread(function(contact) {
+      var customFieldsIds = _.keys(newCustomFields);
+      return [contact, CustomField.findAll({
+        where: {
+          id: customFieldsIds
+        }
+      })];
+    })
+    .spread(function(contact, customFields) {
+      customFields.forEach(function(elem) {
+        elem.ContactHasCustomField = {
+          value: newCustomFields[String(elem.id)]
+        }
+      });
+      return [contact, contact.setCustomFields(customFields)];
+    })
+    .spread(function(contact) {
+      return contact.updateAttributes(req.body)
+    })
+    .then(function(contact) {
+      return res.status(200).send(contact);
     })
     .catch(function(err) {
       console.log(err);
-      return next(err);
+      return handleError(res, err);
     });
 };
 
+// // Join contacts info in the DB.
+// exports.joinContacts = function(req, res, next) {
+//   if (req.body.tags) {
+//     Tag.findAll()
+//       .then(function(tags) {
+//         var newTags = [];
+//         var tagList = _.pluck(_.pluck(tags, 'dataValues'), 'name');
+//         var contactTags = req.body.tags.split(',');
+//         contactTags.forEach(function(elem) {
+//           if (!_.includes(tags, elem)) {
+//             newTags.push({
+//               name: elem
+//             });
+//           }
+//         });
+//         if (newTags.length) {
+//           Tag.bulkCreate(newTags, {
+//             individualHooks: true
+//           });
+//         }
+//       })
+//       .catch(function(err) {
+//         return handleError(res, err);
+//       });
+//   }
+//   var updateId = req.body.id;
+//   delete req.body.id;
+//   var phones = _.map(req.body.Phones, function(elem) {
+//     return {
+//       phone: elem.phone,
+//       ContactId: updateId
+//     };
+//   });
+//   var emails = _.map(req.body.Emails, function(elem) {
+//     return {
+//       email: elem.email,
+//       ContactId: updateId
+//     };
+//   });
+//   delete req.body.Phones;
+//   delete req.body.Emails;
+//   return sequelize.transaction(function(t) {
+//       return Contact.update(req.body, {
+//           where: {
+//             id: updateId
+//           }
+//         }, {
+//           transaction: t,
+//           include: [{
+//             all: true
+//           }]
+//         })
+//         .then(function(contact) {
+//           return ContactPhone
+//             .bulkCreate(phones, {
+//               transaction: t
+//             })
+//             .then(function() {
+//               return ContactEmail
+//                 .bulkCreate(emails, {
+//                   transaction: t
+//                 })
+//                 .then(function() {
+//                   return Contact.findById(updateId, {
+//                       transaction: t
+//                     })
+//                     .then(function(contact) {
+//                       return res.status(201).send(contact);
+//                     })
+//                 })
+//             })
+//         })
+//     })
+//     .catch(function(err) {
+//       console.log(err);
+//       return next(err);
+//     });
+// };
+
 // Deletes a managed_contact from the DB.
 exports.destroy = function(req, res) {
   Contact
diff --git a/server/api/contact_manager/index.js b/server/api/contact_manager/index.js
index 27a524d..cc44c15 100644
--- a/server/api/contact_manager/index.js
+++ b/server/api/contact_manager/index.js
@@ -12,7 +12,7 @@ router.get('/:id/history', auth.isAuthenticated(), controller.getHistory);
 router.post('/', auth.isAuthenticated(), controller.create);
 router.post('/validate', auth.isAuthenticated(), controller.contactValidation);
 router.put('/:id', auth.isAuthenticated(), controller.update);
-router.put('/join/:id', auth.isAuthenticated(), controller.joinContacts);
+// router.put('/join/:id', auth.isAuthenticated(), controller.joinContacts);
 router.patch('/:id', auth.isAuthenticated(), controller.update);
 router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
 router.delete('/:id', auth.isAuthenticated(), controller.destroy);
diff --git a/server/api/custom_field/custom_field.controller.js b/server/api/custom_field/custom_field.controller.js
new file mode 100644
index 0000000..ae5b52d
--- /dev/null
+++ b/server/api/custom_field/custom_field.controller.js
@@ -0,0 +1,223 @@
+'use strict';
+
+var _ = require('lodash');
+var CustomField = require('../../models').CustomField;
+var util = require('util');
+
+// Get list of customFields
+exports.index = function(req, res) {
+
+  var attributes = ['name', 'description'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {
+      active: true
+    },
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  CustomField
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+// Get all custom_fields
+exports.getAll = function(req, res) {
+  CustomField
+    .findAll()
+    .then(function(customFields) {
+      return res.status(200).send(customFields);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.customFieldValidation = function(req, res) {
+  console.log(req.body);
+  CustomField
+    .findAll({
+      where: {
+        name: req.body.name
+      }
+    })
+    .then(function(customFields) {
+      if (!customFields) {
+        return res.sendStatus(404);
+      }
+      return res.send(customFields);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single customField
+exports.show = function(req, res) {
+  CustomField
+    .findById(req.params.id)
+    .then(function(customField) {
+      if (!customField) {
+        return res.sendStatus(404);
+      }
+      return res.send(customField);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new customField in the DB.
+exports.create = function(req, res) {
+  CustomField
+    .create(req.body)
+    .then(function(customField) {
+      return res.status(201).send(customField);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing customField in the DB.
+exports.update = function(req, res) {
+  CustomField
+    .findAll({
+      where: {
+        name: req.body.name,
+        id: {
+          $ne: req.body.id
+        }
+      }
+    })
+    .then(function(customFields) {
+      if (!customFields) {
+        return res.sendStatus(404);
+      }
+      if (customFields.length > 0) {
+        return res.status(500).send({
+          message: 'MESSAGE_EXIST_CUSTOM_FIELD'
+        })
+      }
+      if (req.body.id) {
+        delete req.body.id;
+      }
+      CustomField
+        .findById(req.params.id)
+        .then(function(customField) {
+          if (!customField) {
+            return res.sendStatus(404);
+          }
+          var updated = _.merge(customField, req.body);
+          updated.save()
+            .then(function() {
+              return res.status(200).send(customField);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a customField from the DB.
+exports.deactivate = function(req, res) {
+  CustomField
+    .findById(req.params.id)
+    .then(function(customField) {
+      if (!customField) {
+        return res.sendStatus(404);
+      }
+      customField.update({
+          active: false
+        })
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.bulkDeactivate = function(req, res) {
+  CustomField
+    .update({
+      active: false
+    }, {
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
diff --git a/server/api/custom_field/custom_field.socket.js b/server/api/custom_field/custom_field.socket.js
new file mode 100644
index 0000000..f607668
--- /dev/null
+++ b/server/api/custom_field/custom_field.socket.js
@@ -0,0 +1,29 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var CustomField = require('../../models').CustomField;
+
+exports.register = function(socket) {
+  CustomField.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  CustomField.afterUpdate(function(doc) {
+    if (!doc.active) {
+      onRemove(socket, doc);
+    }
+  });
+  CustomField.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('custom_field:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('custom_field:remove', doc);
+}
diff --git a/server/api/custom_field/custom_field.spec.js b/server/api/custom_field/custom_field.spec.js
new file mode 100644
index 0000000..852dba1
--- /dev/null
+++ b/server/api/custom_field/custom_field.spec.js
@@ -0,0 +1,20 @@
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/contactmanager/customfields', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/contactmanager/customfields')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
diff --git a/server/api/custom_field/index.js b/server/api/custom_field/index.js
new file mode 100644
index 0000000..dd4afaf
--- /dev/null
+++ b/server/api/custom_field/index.js
@@ -0,0 +1,19 @@
+'use strict';
+
+var express = require('express');
+var controller = require('./custom_field.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/all', auth.isAuthenticated(), controller.getAll);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/validate', auth.isAuthenticated(), controller.customFieldValidation);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDeactivate);
+router.delete('/:id', auth.isAuthenticated(), controller.deactivate);
+
+module.exports = router;
diff --git a/server/api/custom_report/custom_report.controller.js b/server/api/custom_report/custom_report.controller.js
new file mode 100644
index 0000000..abb7d2b
--- /dev/null
+++ b/server/api/custom_report/custom_report.controller.js
@@ -0,0 +1,160 @@
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+var CustomReport = require('../../models').CustomReport;
+var ReportTree = require('../../models').ReportTree;
+
+
+// Get list of custom reports
+exports.index = function(req, res, next) {
+
+  var attributes = ['name', 'description', 'parent'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      case 'role':
+        query.where.role = {
+          $or: value.split(/[\s,]+/)
+        };
+        break;
+      case 'clientQuery':
+        var params = JSON.parse(value);
+        _.forOwn(params, function(pValue, pKey) {
+          query.where[pKey] = pValue;
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  CustomReport
+    .findAndCountAll(query)
+    .then(function(result) {
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+// Get a single report
+exports.show = function(req, res) {
+  CustomReport
+    .findById(req.params.id)
+    .then(function(report) {
+      if (!report) {
+        return res.sendStatus(404);
+      }
+      return res.send(report);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new report in the DB.
+exports.create = function(req, res) {
+  CustomReport
+    .create(req.body)
+    .then(function(report) {
+      return res.status(201).send(report);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing report in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  CustomReport
+    .findById(req.params.id)
+    .then(function(report) {
+      if (!report) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(report, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(report);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a report from the DB.
+exports.destroy = function(req, res) {
+  CustomReport
+    .findById(req.params.id)
+    .then(function(report) {
+      if (!report) {
+        return res.sendStatus(404);
+      }
+      report.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
diff --git a/server/api/custom_report/custom_report.socket.js b/server/api/custom_report/custom_report.socket.js
new file mode 100644
index 0000000..07bf827
--- /dev/null
+++ b/server/api/custom_report/custom_report.socket.js
@@ -0,0 +1,24 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var CustomReport = require('../../models').CustomReport;
+
+exports.register = function(socket) {
+  CustomReport.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  CustomReport.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('custom_report:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('custom_report:remove', doc);
+}
diff --git a/server/api/custom_report/custom_report.spec.js b/server/api/custom_report/custom_report.spec.js
new file mode 100644
index 0000000..905f802
--- /dev/null
+++ b/server/api/custom_report/custom_report.spec.js
@@ -0,0 +1,20 @@
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/analytics/reports/custom', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/analytic/reports/custom')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
diff --git a/server/api/custom_report/index.js b/server/api/custom_report/index.js
new file mode 100644
index 0000000..403aa5c
--- /dev/null
+++ b/server/api/custom_report/index.js
@@ -0,0 +1,15 @@
+'use strict';
+
+var express = require('express');
+var controller = require('./custom_report.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
diff --git a/server/api/default_report/default_report.controller.js b/server/api/default_report/default_report.controller.js
new file mode 100644
index 0000000..faa5dc7
--- /dev/null
+++ b/server/api/default_report/default_report.controller.js
@@ -0,0 +1,159 @@
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+var DefaultReport = require('../../models').DefaultReport;
+
+// Get list of default reports
+exports.index = function(req, res, next) {
+
+  var attributes = ['name', 'description', 'parent'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      case 'role':
+        query.where.role = {
+          $or: value.split(/[\s,]+/)
+        };
+        break;
+      case 'clientQuery':
+        var params = JSON.parse(value);
+        _.forOwn(params, function(pValue, pKey) {
+          query.where[pKey] = pValue;
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  DefaultReport
+    .findAndCountAll(query)
+    .then(function(result) {
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+
+// Get a single report
+exports.show = function(req, res) {
+  DefaultReport
+    .findById(req.params.id)
+    .then(function(report) {
+      if (!report) {
+        return res.sendStatus(404);
+      }
+      return res.send(report);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new report in the DB.
+exports.create = function(req, res) {
+  DefaultReport
+    .create(req.body)
+    .then(function(report) {
+      return res.status(201).send(report);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing report in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  DefaultReport
+    .findById(req.params.id)
+    .then(function(report) {
+      if (!report) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(report, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(report);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a report from the DB.
+exports.destroy = function(req, res) {
+  DefaultReport
+    .findById(req.params.id)
+    .then(function(report) {
+      if (!report) {
+        return res.sendStatus(404);
+      }
+      report.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
diff --git a/server/api/default_report/default_report.socket.js b/server/api/default_report/default_report.socket.js
new file mode 100644
index 0000000..2acd563
--- /dev/null
+++ b/server/api/default_report/default_report.socket.js
@@ -0,0 +1,24 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var DefaultReport = require('../../models').DefaultReport;
+
+exports.register = function(socket) {
+  DefaultReport.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  DefaultReport.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('default_report:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('default_report:remove', doc);
+}
diff --git a/server/api/default_report/default_report.spec.js b/server/api/default_report/default_report.spec.js
new file mode 100644
index 0000000..2a6c81d
--- /dev/null
+++ b/server/api/default_report/default_report.spec.js
@@ -0,0 +1,20 @@
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/analytics/reports/default', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/analytic/reports/default')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
diff --git a/server/api/default_report/index.js b/server/api/default_report/index.js
new file mode 100644
index 0000000..6bf1130
--- /dev/null
+++ b/server/api/default_report/index.js
@@ -0,0 +1,15 @@
+'use strict';
+
+var express = require('express');
+var controller = require('./default_report.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.get('/:id', controller.show);
+router.post('/', controller.create);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+router.delete('/:id', controller.destroy);
+
+module.exports = router;
diff --git a/server/api/desk_account/desk_account.controller.js b/server/api/desk_account/desk_account.controller.js
index da44390..78e1902 100644
--- a/server/api/desk_account/desk_account.controller.js
+++ b/server/api/desk_account/desk_account.controller.js
@@ -228,6 +228,22 @@ exports.getFields = function(req, res) {
     });
 }
 
+exports.bulkDestroy = function(req, res) {
+  DeskAccount
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
 function stripTrailingSlash(str) {
   if (str.substr(-1) === '/') {
     return str.substr(0, str.length - 1);
diff --git a/server/api/desk_account/index.js b/server/api/desk_account/index.js
index 2fb94c9..4a593d0 100644
--- a/server/api/desk_account/index.js
+++ b/server/api/desk_account/index.js
@@ -13,6 +13,7 @@ router.post('/validate/:field', auth.isAuthenticated(), controller.deskValidatio
 router.post('/', auth.isAuthenticated(), controller.create);
 router.put('/:id', auth.isAuthenticated(), controller.update);
 router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
 router.delete('/:id', auth.isAuthenticated(), controller.destroy);
 
 module.exports = router;
diff --git a/server/api/freshdesk_account/freshdesk_account.controller.js b/server/api/freshdesk_account/freshdesk_account.controller.js
new file mode 100644
index 0000000..ae9ab8a
--- /dev/null
+++ b/server/api/freshdesk_account/freshdesk_account.controller.js
@@ -0,0 +1,239 @@
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/freshdesk/accounts              ->  index
+ * POST    /api/freshdesk/accounts              ->  create
+ * GET     /api/freshdesk/accounts/:id          ->  show
+ * PUT     /api/freshdesk/accounts/:id          ->  update
+ * DELETE  /api/freshdesk/accounts/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+var util = require('util');
+var _fd = require('freshdesk');
+
+var FreshdeskAccount = require('../../models').FreshdeskAccount;
+
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of FreshdeskAccounts
+exports.index = function(req, res) {
+  var attributes = ['description', 'name', 'username', 'remoteUri'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  FreshdeskAccount
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      return res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      return res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+}
+
+// Gets a single FreshdeskAccount from the DB
+exports.show = function(req, res) {
+  FreshdeskAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Creates a new FreshdeskAccount in the DB
+exports.create = function(req, res) {
+  FreshdeskAccount.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing FreshdeskAccount in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  FreshdeskAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a FreshdeskAccount from the DB
+exports.destroy = function(req, res) {
+  FreshdeskAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
+
+exports.bulkDestroy = function(req, res) {
+  FreshdeskAccount
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.checkAccount = function(req, res) {
+  FreshdeskAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(function(account) {
+      var freshdesk = new _fd(account.remoteUri, account.apiKey);
+      freshdesk.listTickets(function(err, response, body) {
+        if (err) {
+          return res.sendStatus(400);
+        }
+        body = JSON.parse(body);
+        if (body.require_login) {
+          return res.sendStatus(400);
+        }
+        return res.sendStatus(200);
+      })
+    })
+    .catch(handleError(res));
+}
+
+exports.accountValidation = function(req, res) {
+  var where = {};
+  where[req.params.field] = req.body.value;
+  FreshdeskAccount
+    .findAndCountAll({
+      where: where
+    })
+    .then(function(result) {
+      if (result.count) {
+        return res.status(200).send({
+          isValid: false,
+          value: req.body.value
+        });
+      }
+      return res.status(200).send({
+        isValid: true,
+        value: req.body.value
+      });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.getFields = function(req, res, next) {
+  FreshdeskAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(function(account) {
+      var Freshdesk = new _fd(account.remoteUri, account.apiKey);
+      Freshdesk.get('/ticket_fields.json', function(err, response, body) {
+        if (err) {
+          return next(err);
+        }
+        body = JSON.parse(body);
+        return res.status(200).send(body);
+      });
+    })
+    .catch(handleError(res));
+};
diff --git a/server/api/freshdesk_account/freshdesk_account.socket.js b/server/api/freshdesk_account/freshdesk_account.socket.js
new file mode 100644
index 0000000..2aabaae
--- /dev/null
+++ b/server/api/freshdesk_account/freshdesk_account.socket.js
@@ -0,0 +1,24 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var FreshdeskAccount = require('../../models').FreshdeskAccount;
+
+exports.register = function(socket) {
+  FreshdeskAccount.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  FreshdeskAccount.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('freshdesk_account:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('freshdesk_account:remove', doc);
+}
diff --git a/server/api/freshdesk_account/index.js b/server/api/freshdesk_account/index.js
new file mode 100644
index 0000000..a7385b7
--- /dev/null
+++ b/server/api/freshdesk_account/index.js
@@ -0,0 +1,21 @@
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./freshdesk_account.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.get('/:id/fields', auth.isAuthenticated(), controller.getFields);
+router.get('/:id/check', auth.isAuthenticated(), controller.checkAccount);
+router.post('/validate/:field', auth.isAuthenticated(), controller.accountValidation);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+
+module.exports = router;
diff --git a/server/api/freshdesk_account/index.spec.js b/server/api/freshdesk_account/index.spec.js
new file mode 100644
index 0000000..6d7fc75
--- /dev/null
+++ b/server/api/freshdesk_account/index.spec.js
@@ -0,0 +1,97 @@
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var freshdeskAccountCtrlStub = {
+  index: 'freshdeskAccountCtrl.index',
+  show: 'freshdeskAccountCtrl.show',
+  create: 'freshdeskAccountCtrl.create',
+  update: 'freshdeskAccountCtrl.update',
+  destroy: 'freshdeskAccountCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var freshdeskAccountIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './freshdesk_account.controller': freshdeskAccountCtrlStub
+});
+
+describe('FreshdeskAccount API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(freshdeskAccountIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/freshdesk/accounts', function() {
+
+    it('should route to freshdeskAccount.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'freshdeskAccountCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/freshdesk/accounts/:id', function() {
+
+    it('should route to freshdeskAccount.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'freshdeskAccountCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/freshdesk/accounts', function() {
+
+    it('should route to freshdeskAccount.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'freshdeskAccountCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/freshdesk/accounts/:id', function() {
+
+    it('should route to freshdeskAccount.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'freshdeskAccountCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/freshdesk/accounts/:id', function() {
+
+    it('should route to freshdeskAccount.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'freshdeskAccountCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/freshdesk/accounts/:id', function() {
+
+    it('should route to freshdeskAccount.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'freshdeskAccountCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
diff --git a/server/api/freshdesk_configuration/freshdesk_configuration.controller.js b/server/api/freshdesk_configuration/freshdesk_configuration.controller.js
new file mode 100644
index 0000000..f3f01da
--- /dev/null
+++ b/server/api/freshdesk_configuration/freshdesk_configuration.controller.js
@@ -0,0 +1,146 @@
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/freshdesk/configurations              ->  index
+ * POST    /api/freshdesk/configurations              ->  create
+ * GET     /api/freshdesk/configurations/:id          ->  show
+ * PUT     /api/freshdesk/configurations/:id          ->  update
+ * DELETE  /api/freshdesk/configurations/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+
+var FreshdeskConfiguration = require('../../models').FreshdeskConfiguration;
+var FreshdeskField = require('../../models').FreshdeskField;
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(updated => {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(() => {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of FreshdeskConfigurations
+exports.index = function(req, res) {
+  FreshdeskConfiguration.findAll({
+      where: req.query
+    })
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Gets a single FreshdeskConfiguration from the DB
+exports.show = function(req, res) {
+  FreshdeskConfiguration.find({
+      where: {
+        id: req.params.id
+      },
+      include: [{
+        model: FreshdeskField,
+        as: 'Subject'
+      }, {
+        model: FreshdeskField,
+        as: 'Description'
+      }, {
+        model: FreshdeskField,
+        as: 'Field'
+      }]
+    })
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Creates a new FreshdeskConfiguration in the DB
+exports.create = function(req, res) {
+  FreshdeskConfiguration.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing FreshdeskConfiguration in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  FreshdeskConfiguration.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a FreshdeskConfiguration from the DB
+exports.destroy = function(req, res) {
+  FreshdeskConfiguration.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
+
+exports.addConfigurationField = function(req, res, next) {
+  // console.log(req.params);
+  var freshdeskConfiguration;
+  FreshdeskConfiguration
+    .findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(function(salesforce_configuration) {
+      freshdeskConfiguration = salesforce_configuration;
+      return FreshdeskField.create(req.body)
+    })
+    .then(function(freshdeskField) {
+      switch (req.params.type) {
+        case 'subject':
+          return [freshdeskConfiguration.addSubject(freshdeskField), freshdeskField];
+        case 'description':
+          return [freshdeskConfiguration.addDescription(freshdeskField), freshdeskField];
+        case 'field':
+          return [freshdeskConfiguration.addField(freshdeskField), freshdeskField];
+      }
+    })
+    .spread(function(data, freshdeskField) {
+      return res.status(201).json(freshdeskField);
+    })
+    .catch(handleError(res));
+};
diff --git a/server/api/freshdesk_configuration/freshdesk_configuration.socket.js b/server/api/freshdesk_configuration/freshdesk_configuration.socket.js
new file mode 100644
index 0000000..4ce7f30
--- /dev/null
+++ b/server/api/freshdesk_configuration/freshdesk_configuration.socket.js
@@ -0,0 +1,24 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var FreshdeskConfiguration = require('../../models').FreshdeskConfiguration;
+
+exports.register = function(socket) {
+  FreshdeskConfiguration.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  FreshdeskConfiguration.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('freshdesk_configuration:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('freshdesk_configuration:remove', doc);
+}
diff --git a/server/api/freshdesk_configuration/index.js b/server/api/freshdesk_configuration/index.js
new file mode 100644
index 0000000..e08945f
--- /dev/null
+++ b/server/api/freshdesk_configuration/index.js
@@ -0,0 +1,19 @@
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./freshdesk_configuration.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.post('/:id/:type', auth.isAuthenticated(), controller.addConfigurationField);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+
+module.exports = router;
diff --git a/server/api/freshdesk_configuration/index.spec.js b/server/api/freshdesk_configuration/index.spec.js
new file mode 100644
index 0000000..b297c23
--- /dev/null
+++ b/server/api/freshdesk_configuration/index.spec.js
@@ -0,0 +1,97 @@
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var freshdeskConfigurationCtrlStub = {
+  index: 'freshdeskConfigurationCtrl.index',
+  show: 'freshdeskConfigurationCtrl.show',
+  create: 'freshdeskConfigurationCtrl.create',
+  update: 'freshdeskConfigurationCtrl.update',
+  destroy: 'freshdeskConfigurationCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var freshdeskConfigurationIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './freshdesk_configuration.controller': freshdeskConfigurationCtrlStub
+});
+
+describe('FreshdeskConfiguration API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(freshdeskConfigurationIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/freshdesk/configurations', function() {
+
+    it('should route to freshdeskConfiguration.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'freshdeskConfigurationCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/freshdesk/configurations/:id', function() {
+
+    it('should route to freshdeskConfiguration.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'freshdeskConfigurationCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/freshdesk/configurations', function() {
+
+    it('should route to freshdeskConfiguration.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'freshdeskConfigurationCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/freshdesk/configurations/:id', function() {
+
+    it('should route to freshdeskConfiguration.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'freshdeskConfigurationCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/freshdesk/configurations/:id', function() {
+
+    it('should route to freshdeskConfiguration.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'freshdeskConfigurationCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/freshdesk/configurations/:id', function() {
+
+    it('should route to freshdeskConfiguration.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'freshdeskConfigurationCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
diff --git a/server/api/freshdesk_field/freshdesk_field.controller.js b/server/api/freshdesk_field/freshdesk_field.controller.js
new file mode 100644
index 0000000..4a35db8
--- /dev/null
+++ b/server/api/freshdesk_field/freshdesk_field.controller.js
@@ -0,0 +1,104 @@
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/freshdesk/fields              ->  index
+ * POST    /api/freshdesk/fields              ->  create
+ * GET     /api/freshdesk/fields/:id          ->  show
+ * PUT     /api/freshdesk/fields/:id          ->  update
+ * DELETE  /api/freshdesk/fields/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+
+var FreshdeskField = require('../../models').FreshdeskField;
+
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of FreshdeskFields
+exports.index = function(req, res) {
+  FreshdeskField.findAll()
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Gets a single FreshdeskField from the DB
+exports.show = function(req, res) {
+  FreshdeskField.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Creates a new FreshdeskField in the DB
+exports.create = function(req, res) {
+  FreshdeskField.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing FreshdeskField in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  FreshdeskField.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a FreshdeskField from the DB
+exports.destroy = function(req, res) {
+  FreshdeskField.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
diff --git a/server/api/freshdesk_field/freshdesk_field.socket.js b/server/api/freshdesk_field/freshdesk_field.socket.js
new file mode 100644
index 0000000..b351442
--- /dev/null
+++ b/server/api/freshdesk_field/freshdesk_field.socket.js
@@ -0,0 +1,24 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var FreshdeskField = require('../../models').FreshdeskField;
+
+exports.register = function(socket) {
+  FreshdeskField.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  FreshdeskField.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('freshdesk_field:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('freshdesk_field:remove', doc);
+}
diff --git a/server/api/freshdesk_field/index.js b/server/api/freshdesk_field/index.js
new file mode 100644
index 0000000..d17268f
--- /dev/null
+++ b/server/api/freshdesk_field/index.js
@@ -0,0 +1,18 @@
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./freshdesk_field.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+
+module.exports = router;
diff --git a/server/api/freshdesk_field/index.spec.js b/server/api/freshdesk_field/index.spec.js
new file mode 100644
index 0000000..b5c0fb8
--- /dev/null
+++ b/server/api/freshdesk_field/index.spec.js
@@ -0,0 +1,97 @@
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var freshdeskFieldCtrlStub = {
+  index: 'freshdeskFieldCtrl.index',
+  show: 'freshdeskFieldCtrl.show',
+  create: 'freshdeskFieldCtrl.create',
+  update: 'freshdeskFieldCtrl.update',
+  destroy: 'freshdeskFieldCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var freshdeskFieldIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './freshdesk_field.controller': freshdeskFieldCtrlStub
+});
+
+describe('FreshdeskField API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(freshdeskFieldIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/freshdesk/fields', function() {
+
+    it('should route to freshdeskField.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'freshdeskFieldCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/freshdesk/fields/:id', function() {
+
+    it('should route to freshdeskField.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'freshdeskFieldCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/freshdesk/fields', function() {
+
+    it('should route to freshdeskField.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'freshdeskFieldCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/freshdesk/fields/:id', function() {
+
+    it('should route to freshdeskField.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'freshdeskFieldCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/freshdesk/fields/:id', function() {
+
+    it('should route to freshdeskField.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'freshdeskFieldCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/freshdesk/fields/:id', function() {
+
+    it('should route to freshdeskField.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'freshdeskFieldCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
diff --git a/server/api/integration/integration.controller.js b/server/api/integration/integration.controller.js
index 437f50d..fac2b89 100644
--- a/server/api/integration/integration.controller.js
+++ b/server/api/integration/integration.controller.js
@@ -14,7 +14,9 @@ var Integration = require('../../models').Integration;
 // Get list of integrations
 exports.index = function(req, res) {
   Integration
-    .findAll()
+    .findAll({
+      where: req.query
+    })
     .then(function(integrations) {
       return res.status(200).send(integrations);
     })
diff --git a/server/api/integration/integration.socket.js b/server/api/integration/integration.socket.js
index 2af623b..a79af43 100644
--- a/server/api/integration/integration.socket.js
+++ b/server/api/integration/integration.socket.js
@@ -10,6 +10,9 @@ exports.register = function(socket) {
   Integration.afterCreate(function(doc) {
     onSave(socket, doc);
   });
+  Integration.afterUpdate(function(doc) {
+    onSave(socket, doc);
+  });
   Integration.afterDestroy(function(doc) {
     onRemove(socket, doc);
   });
diff --git a/server/api/mail_attachment/mail_attachment.controller.js b/server/api/mail_attachment/mail_attachment.controller.js
index 7ca410b..f962782 100644
--- a/server/api/mail_attachment/mail_attachment.controller.js
+++ b/server/api/mail_attachment/mail_attachment.controller.js
@@ -5,83 +5,83 @@ var fs = require('fs');
 var MailAttachment = require('../../models').MailAttachment;
 
 // Get list of mailAttachments
-exports.index = function(req, res, next) {
+exports.index = function (req, res, next) {
   MailAttachment
     .findAll()
-    .then(function(mailAttachments) {
+    .then(function (mailAttachments) {
       return res.status(200).send(mailAttachments);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return next(err);
     });
 };
 
 // Get a single mailAttachment
-exports.show = function(req, res, next) {
+exports.show = function (req, res, next) {
   MailAttachment
     .findById(req.params.id)
-    .then(function(mailAttachment) {
-      res.download(mailAttachment.filePath, mailAttachment.fileName);
+    .then(function (mailAttachment) {
+      res.download(mailAttachment.path, mailAttachment.fileName);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return next(err);
     });
 };
 
 // Creates a new mailAttachment in the DB.
-exports.create = function(req, res, next) {
+exports.create = function (req, res, next) {
   MailAttachment
     .create(req.body)
-    .then(function(mailAttachment) {
+    .then(function (mailAttachment) {
       return res.status(201).send(mailAttachment);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return next(err);
     });
 };
 
 // Updates an existing mailAttachment in the DB.
-exports.update = function(req, res, next) {
+exports.update = function (req, res, next) {
   if (req.body.id) {
     delete req.body.id;
   }
   MailAttachment
     .findById(req.params.id)
-    .then(function(mailAttachment) {
+    .then(function (mailAttachment) {
       if (!mailAttachment) {
         return res.sendStatus(404);
       }
       var updated = _.merge(mailAttachment, req.body);
       updated.save()
-        .then(function() {
+        .then(function () {
           return res.status(200).send(mailAttachment);
         })
-        .catch(function(err) {
+        .catch(function (err) {
           return next(err);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return next(err);
     });
 };
 
 // Deletes a mailAttachment from the DB.
-exports.destroy = function(req, res, next) {
+exports.destroy = function (req, res, next) {
   MailAttachment
     .findById(req.params.id)
-    .then(function(mailAttachment) {
+    .then(function (mailAttachment) {
       if (!mailAttachment) {
         return res.sendStatus(404);
       }
       mailAttachment.destroy()
-        .then(function() {
+        .then(function () {
           return res.sendStatus(204);
         })
-        .catch(function(err) {
+        .catch(function (err) {
           return next(err);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return next(err);
     });
 };
diff --git a/server/api/mail_business_automation/mail_business_automation.socket.js b/server/api/mail_business_automation/mail_business_automation.socket.js
index bf9305f..0887a18 100644
--- a/server/api/mail_business_automation/mail_business_automation.socket.js
+++ b/server/api/mail_business_automation/mail_business_automation.socket.js
@@ -6,20 +6,19 @@
 
 var MailBusinessAutomation = require('../../models').MailBusinessAutomation;
 
-exports.register = function(socket) {
-  MailBusinessAutomation.afterCreate(function(doc, options) {
+exports.register = function (socket) {
+  MailBusinessAutomation.afterCreate(function (doc, options) {
     onSave(socket, doc);
   });
-  MailBusinessAutomation.afterUpdate(function(doc, options) {
+  MailBusinessAutomation.afterUpdate(function (doc, options) {
     onSave(socket, doc);
   });
-  MailBusinessAutomation.afterDestroy(function(doc) {
+  MailBusinessAutomation.afterDestroy(function (doc) {
     onRemove(socket, doc);
   });
 }
 
 function onSave(socket, doc, cb) {
-  // console.log('mail_business_automation:save', doc);
   socket.emit('mail_business_automation:save', doc);
 }
 
diff --git a/server/api/mail_message/mail_message.controller.js b/server/api/mail_message/mail_message.controller.js
index 175f4b6..8687723 100644
--- a/server/api/mail_message/mail_message.controller.js
+++ b/server/api/mail_message/mail_message.controller.js
@@ -16,7 +16,7 @@ var MailAccount = require('../../models').MailAccount;
 var Contact = require('../../models').Contact;
 
 // Get list of mail_messages
-exports.index = function(req, res, next) {
+exports.index = function (req, res, next) {
   var params = {
     order: 'createdAt DESC',
     include: [{
@@ -28,27 +28,27 @@ exports.index = function(req, res, next) {
   };
 
   switch (req.user.role) {
-    case 'admin':
-      params.where = req.query;
-      break;
-    case 'agent':
-      break;
-    default:
+  case 'admin':
+    params.where = req.query;
+    break;
+  case 'agent':
+    break;
+  default:
 
   }
 
   MailMessage
     .findAll(params)
-    .then(function(mail_messages) {
+    .then(function (mail_messages) {
       return res.status(200).send(mail_messages);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err, next);
     });
 };
 
 // Get a single mailMessage
-exports.show = function(req, res, next) {
+exports.show = function (req, res, next) {
   MailMessage
     .findById(req.params.id, {
       include: [{
@@ -58,19 +58,19 @@ exports.show = function(req, res, next) {
         }]
       }]
     })
-    .then(function(mailMessage) {
+    .then(function (mailMessage) {
       if (!mailMessage) {
         return res.sendStatus(404);
       }
       return res.send(mailMessage);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err, next);
     });
 };
 
 // Creates a new mailMessage in the DB.
-exports.create = function(req, res, next) {
+exports.create = function (req, res, next) {
   // 1) Messaggio in uscita
   var form = new formidable.IncomingForm();
   form.uploadDir = path.join(config.root, 'server', 'files', 'attachments');
@@ -79,7 +79,7 @@ exports.create = function(req, res, next) {
 
   if (_.isEmpty(req.body)) {
     // ATTACHMENT
-    form.parse(req, function(err, form, wrap) {
+    form.parse(req, function (err, form, wrap) {
       if (err) {
         return res.status(400).send(err);
       }
@@ -92,37 +92,44 @@ exports.create = function(req, res, next) {
         contentType: file.type
       }];
 
-      MailMessage
-        .create(form, {
-          include: [{
-            all: true
-          }]
-        })
-        .then(function(mailMessage) {
-          return res.status(201).send(mailMessage);
-        })
-        .catch(function(err) {
-          return res.status(400).send(err);
-        });
+      return sequelize.transaction().then(function (t) {
+        return MailMessage
+          .create(form, {
+            include: [{
+              all: true
+            }],
+            transaction: t
+          }).then(function (mailMessage) {
+            t.commit();
+            return res.status(201).send(mailMessage);
+          }).catch(function (err) {
+            t.rollback();
+            return handleError(res, err);
+          });
+      });
     });
   } else {
     // NO ATTACHMENT
     console.log('NO ATTACHMENT');
     req.body.status = 'SENDING';
 
-    MailMessage
-      .create(req.body)
-      .then(function(mailMessage) {
-        return res.status(201).send(mailMessage);
-      })
-      .catch(function(err) {
-        return res.status(400).send(err);
-      });
+    return sequelize.transaction().then(function (t) {
+      return MailMessage
+        .create(req.body, {
+          transaction: t
+        }).then(function (mailMessage) {
+          t.commit();
+          return res.status(201).send(mailMessage);
+        }).catch(function (err) {
+          t.rollback();
+          return handleError(res, err);
+        });
+    });
   }
 };
 
 // Updates an existing mailMessage in the DB.
-exports.update = function(req, res, next) {
+exports.update = function (req, res, next) {
 
   MailMessage
     .findById(req.params.id, {
@@ -130,47 +137,47 @@ exports.update = function(req, res, next) {
         all: true
       }]
     })
-    .then(function(mailMessage) {
+    .then(function (mailMessage) {
       if (!mailMessage) {
         return res.sendStatus(404);
       }
       var updated = _.merge(mailMessage, req.body);
       updated.save()
-        .then(function() {
+        .then(function () {
           return res.status(200).send(updated);
         })
-        .catch(function(err) {
+        .catch(function (err) {
           return handleError(res, err, next);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err, next);
     });
 };
 
 // Deletes a mailMessage from the DB.
-exports.destroy = function(req, res, next) {
+exports.destroy = function (req, res, next) {
   MailMessage
     .findById(req.params.id)
-    .then(function(mailMessage) {
+    .then(function (mailMessage) {
       if (!mailMessage) {
         return res.sendStatus(404);
       }
       mailMessage.destroy()
-        .then(function() {
+        .then(function () {
           return res.sendStatus(204);
         })
-        .catch(function(err) {
+        .catch(function (err) {
           return handleError(res, err, next);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err, next);
     });
 };
 
 // Deletes a mailMessage from the DB.
-exports.bulkDelete = function(req, res, next) {
+exports.bulkDelete = function (req, res, next) {
   MailMessage
     .bulkUpdate({
       where: {
@@ -182,23 +189,23 @@ exports.bulkDelete = function(req, res, next) {
         directory: 'TRASH'
       }
     })
-    .then(function(mailMessage) {
+    .then(function (mailMessage) {
       if (!mailMessage) {
         return res.sendStatus(404);
       }
       mailMessage.destroy()
-        .then(function() {
+        .then(function () {
           return res.sendStatus(204);
         })
-        .catch(function(err) {
+        .catch(function (err) {
           return handleError(res, err, next);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err, next);
     });
 };
 
 function handleError(res, err, next) {
-  return next(err);
+  return res.status(500).send(err);
 }
diff --git a/server/api/mail_room/mail_room.controller.js b/server/api/mail_room/mail_room.controller.js
index 27aa932..c82e68d 100644
--- a/server/api/mail_room/mail_room.controller.js
+++ b/server/api/mail_room/mail_room.controller.js
@@ -11,7 +11,7 @@ var MailAccount = require('../../models').MailAccount;
 var MailAttachment = require('../../models').MailAttachment;
 
 // Get list of mailRooms
-exports.index = function(req, res, next) {
+exports.index = function (req, res, next) {
 
   var attributes = ['subject', 'from', 'status'];
   var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
@@ -30,39 +30,39 @@ exports.index = function(req, res, next) {
     }]
   };
 
-  _.forIn(req.query, function(value, key) {
+  _.forIn(req.query, function (value, key) {
     switch (key) {
-      case 'per_page':
-      case 'page':
-        break;
-      case 'sort_by':
-        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
-        break;
-      case 'sort_order':
-        break;
-      case '$':
-        query.where.$or = [];
-        attributes.forEach(function(attribute) {
-          var tmp = {};
-          tmp[attribute] = {
-            $like: '%' + value + '%'
-          };
-
-          query.where.$or.push(tmp);
-        });
-        break;
-      default:
-        query.where[key] = {
-          $like: {}
+    case 'per_page':
+    case 'page':
+      break;
+    case 'sort_by':
+      query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+      break;
+    case 'sort_order':
+      break;
+    case '$':
+      query.where.$or = [];
+      attributes.forEach(function (attribute) {
+        var tmp = {};
+        tmp[attribute] = {
+          $like: '%' + value + '%'
         };
-        query.where[key].$like = '%' + value + '%';
+
+        query.where.$or.push(tmp);
+      });
+      break;
+    default:
+      query.where[key] = {
+        $like: {}
+      };
+      query.where[key].$like = '%' + value + '%';
     }
   });

   MailRoom
     .findAndCountAll(query)
-    .then(function(result) {
+    .then(function (result) {
       var total_pages = Math.ceil(result.count / per_page);
       var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
       var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
@@ -76,13 +76,13 @@ exports.index = function(req, res, next) {
       });
 
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return next(err);
     });
 };
 
 // Get list of agent mailRooms
-exports.agentIndex = function(req, res, next) {
+exports.agentIndex = function (req, res, next) {
   MailRoom
     .findAll({
       where: {
@@ -92,112 +92,110 @@ exports.agentIndex = function(req, res, next) {
         all: true
       }]
     })
-    .then(function(mailRooms) {
+    .then(function (mailRooms) {
       return res.status(200).send(mailRooms);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return next(err);
     });
 };
 
 // Get a single mailRoom
-exports.show = function(req, res, next) {
-  MailRoom
+exports.show = function (req, res, next) {
+  return MailRoom
     .findById(req.params.id, {
       include: [{
         model: MailMessage,
         include: [{
-          all: true
+          model: MailRoom,
+          include: [{
+            model: MailAccount
+          }]
+        }, {
+          model: MailAttachment
         }]
-      }, {
-        model: MailAccount
       }]
     })
-    .then(function(mailRoom) {
+    .then(function (mailRoom) {
       if (!mailRoom) {
         return res.sendStatus(404);
       }
 
       return res.send(mailRoom);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return next(err);
     });
 };
 
 // Creates a new mailRoom in the DB.
-exports.create = function(req, res, next) {
-  MailRoom
+exports.create = function (req, res, next) {
+  return MailRoom
     .create(req.body)
-    .then(function(mailRoom) {
+    .then(function (mailRoom) {
       return res.status(201).send(mailRoom);
     })
-    .catch(function(err) {
-      return next(err);
+    .catch(function (err) {
+      return handleError(res, err);
     });
 };
 
 // Updates an existing mailRoom in the DB.
-exports.update = function(req, res, next) {
-  MailRoom
+exports.update = function (req, res, next) {
+  return MailRoom
     .findById(req.params.id)
-    .then(function(mailRoom) {
+    .then(function (mailRoom) {
       if (!mailRoom) {
         return res.sendStatus(404);
       }
       // CHECK IF MAIL IS ALREADY ASSIGNED
       if (mailRoom.jobId) {
-        return next(new Error('Mail already assigned'));
+        throw new Error('Mail already assigned');
       }
       var updated = _.merge(mailRoom, req.body);
-      updated
-        .save()
-        .then(function() {
-          return res.status(200).send(mailRoom);
-        })
-        .catch(function(err) {
-          return next(err);
-        });
+
+      return updated
+        .save();
     })
-    .catch(function(err) {
-      return next(err);
+    .then(function (mailRoom) {
+      return res.status(200).send(mailRoom);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
     });
 };
 
 // Deletes a mailRoom from the DB.
-exports.destroy = function(req, res, next) {
-  MailRoom
+exports.destroy = function (req, res, next) {
+  return MailRoom
     .findById(req.params.id)
-    .then(function(mailRoom) {
+    .then(function (mailRoom) {
       if (!mailRoom) {
         return res.sendStatus(404);
       }
-      mailRoom.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return next(err);
-        });
+      return mailRoom.destroy();
     })
-    .catch(function(err) {
-      return next(err);
+    .then(function () {
+      return res.sendStatus(204);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
     });
 };
 
 // Deletes a agent from the DB.
-exports.bulkDestroy = function(req, res) {
-  MailRoom
+exports.bulkDestroy = function (req, res) {
+  return MailRoom
     .destroy({
       where: {
         id: req.query.id
       },
       individualHooks: true
     })
-    .then(function() {
+    .then(function () {
       return res.sendStatus(200);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
diff --git a/server/api/mail_room/mail_room.kue.js b/server/api/mail_room/mail_room.kue.js
deleted file mode 100644
index 3203cab..0000000
--- a/server/api/mail_room/mail_room.kue.js
+++ /dev/null
@@ -1,66 +0,0 @@
-// /**
-//  * Broadcast updates to client when the model changes
-//  */
-//
-'use strict';
-//
-// var _ = require('lodash');
-// var moment = require('moment');
-//
-// var User = require('../../models').User;
-//
-// var MailRoom = require('../../models').MailRoom;
-// var MailQueue = require('../../models').MailQueue;
-// var MailAccount = require('../../models').MailAccount;
-// var MailApplication = require('../../models').MailApplication;
-//
-// var ReportMail = require('../../models').ReportMail;
-// var ReportMailSession = require('../../models').ReportMailSession;
-//
-// exports.register = function(aTimeout, callback) {
-//   // ADD MAIL REPORT HOOKS
-//   ReportMail.addHook('afterUpdate', 'notifyMail', function(doc) {
-//     if (doc.changed('agentconnectedAt')) {
-//       onSave(doc, aTimeout, callback);
-//     }
-//   });
-// }
-//
-// function onSave(doc, aTimeout, callback) {
-//   // START CALLBACK
-//   clearTimeout(aTimeout);
-//   callback();
-//   // END CALLBACK
-//
-//   ReportMail
-//     .update({
-//       agentringnoanswerAt: moment().format("YYYY-MM-DD HH:mm:ss"),
-//       reason: "answered_elsewhere",
-//       lastevent: "answered_elsewhere"
-//     }, {
-//       where: {
-//         uniqueid: doc.uniqueid,
-//         reason: null
-//       },
-//       individualHooks: true
-//     })
-//     .catch(function(err) {
-//       console.error(err);
-//     });
-//
-//   ReportMailSession
-//     .update({
-//       mailleaveAt: moment().format("YYYY-MM-DD HH:mm:ss"),
-//       fullname: doc.fullname,
-//       membername: doc.membername,
-//       mailqueuename: doc.mailqueuename
-//     }, {
-//       where: {
-//         uniqueid: doc.uniqueid,
-//       },
-//       individualHooks: true
-//     })
-//     .catch(function(err) {
-//       console.error(err);
-//     });
-// }
diff --git a/server/api/mail_room/mail_room.spec.js b/server/api/mail_room/mail_room.spec.js
deleted file mode 100644
index 34272a5..0000000
--- a/server/api/mail_room/mail_room.spec.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/mail/rooms', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/mail/rooms')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
diff --git a/server/api/mail_server_in/index.js b/server/api/mail_server_in/index.js
index 8d72df5..adb146b 100644
--- a/server/api/mail_server_in/index.js
+++ b/server/api/mail_server_in/index.js
@@ -12,4 +12,4 @@ router.put('/:id', controller.update);
 router.patch('/:id', controller.update);
 router.delete('/:id', controller.destroy);
 
-module.exports = router;
\ No newline at end of file
+module.exports = router;
diff --git a/server/api/mail_server_in/mail_server_in.controller.js b/server/api/mail_server_in/mail_server_in.controller.js
index 52529da..4b9bb68 100644
--- a/server/api/mail_server_in/mail_server_in.controller.js
+++ b/server/api/mail_server_in/mail_server_in.controller.js
@@ -4,90 +4,91 @@ var _ = require('lodash');
 var MailServerIn = require('../../models').MailServerIn;
 
 // Get list of mail_server_ins
-exports.index = function(req, res) {
+exports.index = function (req, res) {
   MailServerIn
     .findAll()
-    .then(function(mail_server_ins) {
+    .then(function (mail_server_ins) {
       return res.status(200).send(mail_server_ins);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Get a single mailServerIn
-exports.show = function(req, res) {
+exports.show = function (req, res) {
   MailServerIn
     .findById(req.params.id)
-    .then(function(mailServerIn) {
+    .then(function (mailServerIn) {
       if (!mailServerIn) {
         return res.sendStatus(404);
       }
       return res.send(mailServerIn);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Creates a new mailServerIn in the DB.
-exports.create = function(req, res) {
+exports.create = function (req, res) {
   MailServerIn
     .create(req.body)
-    .then(function(mailServerIn) {
+    .then(function (mailServerIn) {
       return res.status(201).send(mailServerIn);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Updates an existing mailServerIn in the DB.
-exports.update = function(req, res) {
+exports.update = function (req, res) {
   if (req.body.id) {
     delete req.body.id;
   }
-  MailServerIn
+  return MailServerIn
     .findById(req.params.id)
-    .then(function(mailServerIn) {
+    .then(function (mailServerIn) {
       if (!mailServerIn) {
         return res.sendStatus(404);
       }
       var updated = _.merge(mailServerIn, req.body);
-      updated.save()
-        .then(function() {
+      updated
+        .save()
+        .then(function () {
           return res.status(200).send(mailServerIn);
         })
-        .catch(function(err) {
+        .catch(function (err) {
           console.error(err);
           return handleError(res, err);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       console.error(err);
       return handleError(res, err);
     });
 };
 
 // Deletes a mailServerIn from the DB.
-exports.destroy = function(req, res) {
+exports.destroy = function (req, res) {
   MailServerIn
     .findById(req.params.id)
-    .then(function(mailServerIn) {
+    .then(function (mailServerIn) {
       if (!mailServerIn) {
         return res.sendStatus(404);
       }
       mailServerIn
         .destroy()
-        .then(function() {
+        .then(function () {
           return res.sendStatus(204);
         })
-        .catch(function(err) {
+        .catch(function (err) {
 
           return handleError(res, err);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
diff --git a/server/api/mail_server_in/mail_server_in.spec.js b/server/api/mail_server_in/mail_server_in.spec.js
deleted file mode 100644
index 5aca8b9..0000000
--- a/server/api/mail_server_in/mail_server_in.spec.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/mail/servers/in', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/mail/servers/in')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
diff --git a/server/api/mail_server_out/index.js b/server/api/mail_server_out/index.js
index 977c06d..687b16c 100644
--- a/server/api/mail_server_out/index.js
+++ b/server/api/mail_server_out/index.js
@@ -6,10 +6,13 @@ var controller = require('./mail_server_out.controller');
 var router = express.Router();
 
 router.get('/', controller.index);
+router.get('/service', controller.indexService);
 router.get('/:id', controller.show);
+router.get('/:id/test', controller.test);
 router.post('/', controller.create);
+router.post('/test', controller.test);
 router.put('/:id', controller.update);
 router.patch('/:id', controller.update);
 router.delete('/:id', controller.destroy);
 
-module.exports = router;
\ No newline at end of file
+module.exports = router;
diff --git a/server/api/mail_server_out/mail_server_out.controller.js b/server/api/mail_server_out/mail_server_out.controller.js
index 5e0b471..8bcbcb5 100644
--- a/server/api/mail_server_out/mail_server_out.controller.js
+++ b/server/api/mail_server_out/mail_server_out.controller.js
@@ -2,95 +2,164 @@
 
 var _ = require('lodash');
 var MailServerOut = require('../../models').MailServerOut;
+var MailMessage = require('../../models').MailMessage;
+var sequelize = require('../../models').sequelize;
 
 // Get list of mailServerOuts
-exports.index = function(req, res) {
+exports.index = function (req, res) {
   MailServerOut
     .findAll()
-    .then(function(mailServerOuts) {
+    .then(function (mailServerOuts) {
       return res.status(200).send(mailServerOuts);
     })
-    .catch(function(err) {
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+exports.indexService = function (req, res) {
+  MailServerOut
+    .findAll({
+      where: {
+        service: true
+      }
+    })
+    .then(function (mailServerOuts) {
+      return res.status(200).send(mailServerOuts);
+    })
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Get a single mailServerOut
-exports.show = function(req, res) {
+exports.show = function (req, res) {
   MailServerOut
     .findById(req.params.id)
-    .then(function(mailServerOut) {
+    .then(function (mailServerOut) {
       if (!mailServerOut) {
         return res.sendStatus(404);
       }
       return res.send(mailServerOut);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Creates a new mailServerOut in the DB.
-exports.create = function(req, res) {
+exports.create = function (req, res) {
   MailServerOut
     .create(req.body)
-    .then(function(mailServerOut) {
+    .then(function (mailServerOut) {
       return res.status(201).send(mailServerOut);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Updates an existing mailServerOut in the DB.
-exports.update = function(req, res) {
+exports.update = function (req, res) {
 
   if (req.body.id) {
     delete req.body.id;
   }
   MailServerOut
     .findById(req.params.id)
-    .then(function(mailServerOut) {
+    .then(function (mailServerOut) {
       if (!mailServerOut) {
         return res.sendStatus(404);
       }
       var updated = _.merge(mailServerOut, req.body);
       updated
         .save()
-        .then(function() {
+        .then(function () {
           return res.status(200).send(mailServerOut);
         })
-        .catch(function(err) {
+        .catch(function (err) {
           return handleError(res, err);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Deletes a mailServerOut from the DB.
-exports.destroy = function(req, res) {
+exports.destroy = function (req, res) {
   MailServerOut
     .findById(req.params.id)
-    .then(function(mailServerOut) {
+    .then(function (mailServerOut) {
       if (!mailServerOut) {
         return res.sendStatus(404);
       }
       mailServerOut
         .destroy()
-        .then(function() {
+        .then(function () {
           return res.sendStatus(204);
         })
-        .catch(function(err) {
+        .catch(function (err) {
           return handleError(res, err);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
+exports.test = function (req, res) {
+  return sequelize.transaction().then(function (t) {
+    var _mailServerOut;
+    var _mailMessage;
+
+    return MailServerOut
+      .findById(req.params.id)
+      .then(function (mailServerOut) {
+        if (!mailServerOut) {
+          t.rollback();
+          return res.sendStatus(404);
+        } else {
+          return mailServerOut;
+        }
+      })
+      .then(function (mailServerOut) {
+        _mailServerOut = mailServerOut;
+        return MailMessage
+          .create({
+            subject: 'MailAccount ' + mailServerOut.username + ' test..',
+            text: 'MailAccount ' + mailServerOut.username + ' test..',
+            from: mailServerOut.username,
+            to: mailServerOut.username,
+            status: 'SENDING'
+          }, {
+            transaction: t
+          });
+      })
+      .then(function (mailMessage) {
+        _mailMessage = mailMessage;
+        return _mailServerOut
+          .update({
+            state: 'CONNECTED',
+          });
+      })
+      .then(function () {
+        t.commit();
+        return res.status(201).send(_mailMessage);
+      })
+      .catch(function (err) {
+        _mailServerOut
+          .update({
+            state: 'ERROR',
+          })
+          .then(function () {
+            t.rollback();
+            return handleError(res, err);
+          })
+      });
+  });
+};
+
 function handleError(res, err) {
   return res.status(500).send(err);
 }
diff --git a/server/api/mail_server_out/mail_server_out.spec.js b/server/api/mail_server_out/mail_server_out.spec.js
deleted file mode 100644
index 7610c26..0000000
--- a/server/api/mail_server_out/mail_server_out.spec.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/mail/servers/out', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/mail/servers/out')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
diff --git a/server/api/mail_template/mail_template.controller.js b/server/api/mail_template/mail_template.controller.js
index c9cd0b2..cb8ae52 100644
--- a/server/api/mail_template/mail_template.controller.js
+++ b/server/api/mail_template/mail_template.controller.js
@@ -7,7 +7,7 @@ var MailTemplate = require('../../models').MailTemplate;
 
 // Get list of mail_templates
 // Get list of mailQueues
-exports.index = function(req, res) {
+exports.index = function (req, res) {
 
   var attributes = ['description', 'name', 'timeout', 'strategy'];
   var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
@@ -22,38 +22,38 @@ exports.index = function(req, res) {
     }]
   };
 
-  _.forIn(req.query, function(value, key) {
+  _.forIn(req.query, function (value, key) {
     switch (key) {
-      case 'per_page':
-      case 'page':
-        break;
-      case 'sort_by':
-        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
-        break;
-      case 'sort_order':
-        break;
-      case '$':
-        query.where.$or = [];
-        attributes.forEach(function(attribute) {
-          var tmp = {};
-          tmp[attribute] = {
-            $like: '%' + value + '%'
-          };
-
-          query.where.$or.push(tmp);
-        });
-        break;
-      default:
-        query.where[key] = {
-          $like: {}
+    case 'per_page':
+    case 'page':
+      break;
+    case 'sort_by':
+      query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+      break;
+    case 'sort_order':
+      break;
+    case '$':
+      query.where.$or = [];
+      attributes.forEach(function (attribute) {
+        var tmp = {};
+        tmp[attribute] = {
+          $like: '%' + value + '%'
         };
-        query.where[key].$like = '%' + value + '%';
+
+        query.where.$or.push(tmp);
+      });
+      break;
+    default:
+      query.where[key] = {
+        $like: {}
+      };
+      query.where[key].$like = '%' + value + '%';
     }
   });
 
   MailTemplate
     .findAndCountAll(query)
-    .then(function(result) {
+    .then(function (result) {
       var total_pages = Math.ceil(result.count / per_page);
       var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
       var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
@@ -67,88 +67,80 @@ exports.index = function(req, res) {
       });
 
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Get a single mail_template
-exports.show = function(req, res) {
+exports.show = function (req, res) {
   MailTemplate
     .findById(req.params.id)
-    .then(function(mail_template) {
+    .then(function (mail_template) {
       if (!mail_template) {
         return res.sendStatus(404);
       }
       return res.send(mail_template);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Creates a new mail_template in the DB.
-exports.create = function(req, res) {
+exports.create = function (req, res) {
   MailTemplate
     .create(req.body)
-    .then(function(mail_template) {
+    .then(function (mail_template) {
       return res.status(201).send(mail_template);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Updates an existing mail_template in the DB.
-exports.update = function(req, res) {
+exports.update = function (req, res) {
   if (req.body.id) {
     delete req.body.id;
   }
   MailTemplate
-    .find({
-      where: {
-        id: req.params.id
-      }
-    })
-    .then(function(mail_template) {
+    .findById(req.params.id)
+    .then(function (mail_template) {
       if (!mail_template) {
         return res.sendStatus(404);
       }
       var updated = _.merge(mail_template, req.body);
       updated.save()
-        .then(function() {
+        .then(function () {
           return res.status(200).send(mail_template);
         })
-        .catch(function(err) {
+        .catch(function (err) {
           return handleError(res, err);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Deletes a mail_template from the DB.
-exports.destroy = function(req, res) {
+exports.destroy = function (req, res) {
   MailTemplate
-    .find({
-      where: {
-        id: req.params.id
-      }
-    })
-    .then(function(mail_template) {
+    .findById(req.params.id)
+    .then(function (mail_template) {
       if (!mail_template) {
         return res.sendStatus(404);
       }
       mail_template.destroy()
-        .then(function() {
+        .then(function () {
           return res.sendStatus(204);
         })
-        .catch(function(err) {
+        .catch(function (err) {
           return handleError(res, err);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
diff --git a/server/api/mail_template/mail_template.spec.js b/server/api/mail_template/mail_template.spec.js
deleted file mode 100644
index bcc9082..0000000
--- a/server/api/mail_template/mail_template.spec.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/mail/templates', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/mail/templates')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
diff --git a/server/api/metric/index.js b/server/api/metric/index.js
new file mode 100644
index 0000000..41fcceb
--- /dev/null
+++ b/server/api/metric/index.js
@@ -0,0 +1,18 @@
+'use strict';
+
+var express = require('express');
+var controller = require('./metric.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/validate', auth.isAuthenticated(), controller.metricValidation);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
diff --git a/server/api/metric/metric.controller.js b/server/api/metric/metric.controller.js
new file mode 100644
index 0000000..c6ef1d7
--- /dev/null
+++ b/server/api/metric/metric.controller.js
@@ -0,0 +1,220 @@
+'use strict';
+
+var _ = require('lodash');
+var Metric = require('../../models').Metric;
+var util = require('util');
+
+// Get list of metrics
+exports.index = function(req, res) {
+
+  var attributes = ['name', 'description'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  Metric
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+exports.metricValidation = function(req, res) {
+  console.log(req.body);
+  Metric
+    .findAll({
+      where: {
+        name: req.body.name
+      }
+    })
+    .then(function(metrics) {
+      if (!metrics) {
+        return res.sendStatus(404);
+      }
+      return res.send(metrics);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single metric
+exports.show = function(req, res) {
+  Metric
+    .findById(req.params.id)
+    .then(function(metric) {
+      if (!metric) {
+        return res.sendStatus(404);
+      }
+      return res.send(metric);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new metric in the DB.
+exports.create = function(req, res) {
+  Metric
+    .create(req.body)
+    .then(function(metric) {
+      return res.status(201).send(metric);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing metric in the DB.
+exports.update = function(req, res) {
+  Metric
+    .findAll({
+      where: {
+        name: req.body.name,
+        id: {
+          $ne: req.body.id
+        }
+      }
+    })
+    .then(function(metrics) {
+      if (!metrics) {
+        return res.sendStatus(404);
+      }
+      if (metrics.length > 0) {
+        return res.status(500).send({
+          message: 'MESSAGE_EXIST_METRIC'
+        })
+      }
+      if (req.body.id) {
+        delete req.body.id;
+      }
+      Metric
+        .find({
+          where: {
+            id: req.params.id
+          }
+        })
+        .then(function(metric) {
+          if (!metric) {
+            return res.sendStatus(404);
+          }
+          var updated = _.merge(metric, req.body);
+          updated.save()
+            .then(function() {
+              return res.status(200).send(metric);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a metric from the DB.
+exports.destroy = function(req, res) {
+  Metric
+    .findById(req.params.id)
+    .then(function(metric) {
+      if (!metric) {
+        return res.sendStatus(404);
+      }
+      metric.getZendeskTexts()
+        .then(function(texts) {
+          if (texts.length > 0) {
+            return res.status(500).send({
+              message: 'MESSAGE_METRIC_CONFIGURATION_ASSOCIATED'
+            });
+          }
+          metric.destroy()
+            .then(function() {
+              return res.sendStatus(204);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.bulkDestroy = function(req, res) {
+  Metric
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
diff --git a/server/api/metric/metric.socket.js b/server/api/metric/metric.socket.js
new file mode 100644
index 0000000..059ce9c
--- /dev/null
+++ b/server/api/metric/metric.socket.js
@@ -0,0 +1,24 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var Metric = require('../../models').Metric;
+
+exports.register = function(socket) {
+  Metric.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  Metric.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('metric:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('metric:remove', doc);
+}
diff --git a/server/api/metric/metric.spec.js b/server/api/metric/metric.spec.js
new file mode 100644
index 0000000..076cab1
--- /dev/null
+++ b/server/api/metric/metric.spec.js
@@ -0,0 +1,20 @@
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/analytics/metrics', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/analytics/metrics')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
diff --git a/server/api/report/index.js b/server/api/report/index.js
deleted file mode 100644
index 9a9d94a..0000000
--- a/server/api/report/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./report.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
\ No newline at end of file
diff --git a/server/api/report/report.controller.js b/server/api/report/report.controller.js
deleted file mode 100644
index 70486b2..0000000
--- a/server/api/report/report.controller.js
+++ /dev/null
@@ -1,121 +0,0 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-var Report = require('../../models').Report;
-
-// Get list of reports
-exports.index = function(req, res) {
-
-  var perPage = req.query.perPage ? parseInt(req.query.perPage, 10) : 100;
-  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
-
-  _.forIn(req.query, function(value, key) {
-    switch (key) {
-      case 'page':
-      case 'perPage':
-        break;
-      case 'sortBy':
-        req.query.order = util.format('%s %s', req.query.sortBy, req.query.reverse === 'true' ? 'DESC' : 'ASC');
-        break;
-      default:
-    }
-  });
-
-  Report
-    .findAndCountAll(req.query)
-    .then(function(result) {
-
-      var totalPages = Math.ceil(result.count / perPage);
-      var nextPage = totalPages > (req.query.perPage + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
-      var prevPage = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
-
-      res.status(200).send({
-        count: result.count,
-        rows: result.rows,
-        nextPage: nextPage,
-        prevPage: prevPage,
-        totalPages: totalPages
-      });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single report
-exports.show = function(req, res) {
-  Report
-    .findById(req.params.id)
-    .then(function(report) {
-      if (!report) {
-        return res.sendStatus(404);
-      }
-      return res.send(report);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new report in the DB.
-exports.create = function(req, res) {
-  Report
-    .create(req.body)
-    .then(function(report) {
-      return res.status(201).send(report);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing report in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  Report
-    .findById(req.params.id)
-    .then(function(report) {
-      if (!report) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(report, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(report);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a report from the DB.
-exports.destroy = function(req, res) {
-  Report
-    .findById(req.params.id)
-    .then(function(report) {
-      if (!report) {
-        return res.sendStatus(404);
-      }
-      report.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
diff --git a/server/api/report/report.socket.js b/server/api/report/report.socket.js
deleted file mode 100644
index bb0d5be..0000000
--- a/server/api/report/report.socket.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var Report = require('../../models').Report;
-
-exports.register = function(socket) {
-  Report.afterCreate(function (doc) {
-    onSave(socket, doc);
-  });
-  Report.afterDestroy(function (doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('report:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('report:remove', doc);
-}
diff --git a/server/api/report/report.spec.js b/server/api/report/report.spec.js
deleted file mode 100644
index 62e6f71..0000000
--- a/server/api/report/report.spec.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/analytic/reports', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/analytic/reports')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
diff --git a/server/api/report_chat/report_chat.controller.js b/server/api/report_chat/report_chat.controller.js
index 4ba3162..d727f82 100644
--- a/server/api/report_chat/report_chat.controller.js
+++ b/server/api/report_chat/report_chat.controller.js
@@ -2,6 +2,7 @@
 
 var _ = require('lodash');
 var ReportChat = require('../../models').ReportChat;
+var sequelize = require('../../models').sequelize;
 
 // Get list of report_chats
 exports.index = function (req, res) {
@@ -47,22 +48,23 @@ exports.update = function (req, res, next) {
   if (req.body.id) {
     delete req.body.id;
   }
-  ReportChat
+
+  return ReportChat
     .findById(req.params.id)
     .then(function (reportChat) {
       if (!reportChat) {
         return res.sendStatus(404);
       }
       var updated = _.merge(reportChat, req.body);
-      updated
+      return updated
         .save()
         .then(function () {
           return res.status(200).send(reportChat);
-        })
-        .catch(function (err) {
-          return handleError(res, err);
         });
     })
+    .catch(sequelize.ValidationError, function (err) {
+      return handleError(res, err);
+    })
     .catch(function (err) {
       return handleError(res, err);
     });
diff --git a/server/api/report_chat/report_chat.socket.js b/server/api/report_chat/report_chat.socket.js
index e6ed1d5..21c35bc 100644
--- a/server/api/report_chat/report_chat.socket.js
+++ b/server/api/report_chat/report_chat.socket.js
@@ -6,14 +6,14 @@
 
 var ReportChat = require('../../models').ReportChat;
 
-exports.register = function(socket) {
-  ReportChat.afterCreate(function(doc) {
+exports.register = function (socket) {
+  ReportChat.afterCreate(function (doc) {
     onSave(socket, doc);
   });
-  ReportChat.afterUpdate(function(doc) {
+  ReportChat.afterUpdate(function (doc) {
     onUpdate(socket, doc);
   });
-  ReportChat.afterDestroy(function(doc) {
+  ReportChat.afterDestroy(function (doc) {
     onRemove(socket, doc);
   });
 }
@@ -26,7 +26,11 @@ function onSave(socket, doc, cb) {
 
 function onUpdate(socket, doc, cb) {
   if (socket.name === doc.membername || socket.role === 'admin') {
-    socket.emit('report_chat:update', doc);
+    if (doc.changed('agentid')) {
+      socket.emit('report_chat:assignment', doc);
+    } else {
+      socket.emit('report_chat:update', doc);
+    }
   }
 }
 
diff --git a/server/api/report_tree/index.js b/server/api/report_tree/index.js
new file mode 100644
index 0000000..75fa91c
--- /dev/null
+++ b/server/api/report_tree/index.js
@@ -0,0 +1,12 @@
+'use strict';
+
+var express = require('express');
+var controller = require('./report_tree.controller');
+
+var router = express.Router();
+
+router.get('/', controller.index);
+router.put('/:id', controller.update);
+router.patch('/:id', controller.update);
+
+module.exports = router;
diff --git a/server/api/report_tree/report_tree.controller.js b/server/api/report_tree/report_tree.controller.js
new file mode 100644
index 0000000..a6b11b0
--- /dev/null
+++ b/server/api/report_tree/report_tree.controller.js
@@ -0,0 +1,46 @@
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+var ReportTree = require('../../models').ReportTree;
+
+// Get the reports trees
+exports.index = function(req, res) {
+  ReportTree
+    .findAll()
+    .then(function(trees) {
+      if (!trees) {
+        return res.sendStatus(404);
+      }
+      return res.status(200).send(trees);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing report in the DB.
+exports.update = function(req, res) {
+  ReportTree
+    .findById(req.params.id)
+    .then(function(tree) {
+      if (!tree) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(tree, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(tree);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
diff --git a/server/api/report_tree/report_tree.socket.js b/server/api/report_tree/report_tree.socket.js
new file mode 100644
index 0000000..389fa7a
--- /dev/null
+++ b/server/api/report_tree/report_tree.socket.js
@@ -0,0 +1,27 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var ReportTree = require('../../models').ReportTree;
+
+exports.register = function(socket) {
+  ReportTree.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  ReportTree.afterUpdate(function(doc) {
+    onSave(socket, doc);
+  });
+  ReportTree.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('report_tree:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('report_tree:remove', doc);
+}
diff --git a/server/api/report_tree/report_tree.spec.js b/server/api/report_tree/report_tree.spec.js
new file mode 100644
index 0000000..37d897a
--- /dev/null
+++ b/server/api/report_tree/report_tree.spec.js
@@ -0,0 +1,20 @@
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/analytics/reports/trees', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/analytic/reports/trees')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
diff --git a/server/api/salesforce_account/index.js b/server/api/salesforce_account/index.js
index 0660138..d8b47b0 100644
--- a/server/api/salesforce_account/index.js
+++ b/server/api/salesforce_account/index.js
@@ -14,6 +14,7 @@ router.post('/validate/:field', auth.isAuthenticated(), controller.accountValida
 router.post('/', auth.isAuthenticated(), controller.create);
 router.put('/:id', auth.isAuthenticated(), controller.update);
 router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
 router.delete('/:id', auth.isAuthenticated(), controller.destroy);

diff --git a/server/api/salesforce_account/salesforce_account.controller.js b/server/api/salesforce_account/salesforce_account.controller.js
index fcd48d4..69c55e6 100644
--- a/server/api/salesforce_account/salesforce_account.controller.js
+++ b/server/api/salesforce_account/salesforce_account.controller.js
@@ -235,3 +235,19 @@ exports.getFields = function(req, res) {
     })
     .catch(handleError(res));
 };
+
+exports.bulkDestroy = function(req, res) {
+  SalesforceAccount
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
diff --git a/server/api/salesforce_configuration/salesforce_configuration.controller.js b/server/api/salesforce_configuration/salesforce_configuration.controller.js
index 3eaabd2..523aef6 100644
--- a/server/api/salesforce_configuration/salesforce_configuration.controller.js
+++ b/server/api/salesforce_configuration/salesforce_configuration.controller.js
@@ -64,7 +64,9 @@ function removeEntity(res) {
 
 // Gets a list of SalesforceConfigurations
 exports.index = function(req, res) {
-  SalesforceConfiguration.findAll()
+  SalesforceConfiguration.findAll({
+      where: req.query
+    })
     .then(responseWithResult(res))
     .catch(handleError(res));
 }
diff --git a/server/api/sugarcrm_account/index.js b/server/api/sugarcrm_account/index.js
new file mode 100644
index 0000000..e87249c
--- /dev/null
+++ b/server/api/sugarcrm_account/index.js
@@ -0,0 +1,21 @@
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./sugarcrm_account.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id/check', auth.isAuthenticated(), controller.checkAccount);
+router.get('/:id/fields', auth.isAuthenticated(), controller.getFields);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/validate/:field', auth.isAuthenticated(), controller.accountValidation);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+
+module.exports = router;
diff --git a/server/api/sugarcrm_account/index.spec.js b/server/api/sugarcrm_account/index.spec.js
new file mode 100644
index 0000000..758de1a
--- /dev/null
+++ b/server/api/sugarcrm_account/index.spec.js
@@ -0,0 +1,97 @@
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var sugarcrmAccountCtrlStub = {
+  index: 'sugarcrmAccountCtrl.index',
+  show: 'sugarcrmAccountCtrl.show',
+  create: 'sugarcrmAccountCtrl.create',
+  update: 'sugarcrmAccountCtrl.update',
+  destroy: 'sugarcrmAccountCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var sugarcrmAccountIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './sugarcrm_account.controller': sugarcrmAccountCtrlStub
+});
+
+describe('SugarcrmAccount API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(sugarcrmAccountIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/sugarcrm/accounts', function() {
+
+    it('should route to sugarcrmAccount.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'sugarcrmAccountCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/sugarcrm/accounts/:id', function() {
+
+    it('should route to sugarcrmAccount.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'sugarcrmAccountCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/sugarcrm/accounts', function() {
+
+    it('should route to sugarcrmAccount.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'sugarcrmAccountCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/sugarcrm/accounts/:id', function() {
+
+    it('should route to sugarcrmAccount.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'sugarcrmAccountCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/sugarcrm/accounts/:id', function() {
+
+    it('should route to sugarcrmAccount.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'sugarcrmAccountCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/sugarcrm/accounts/:id', function() {
+
+    it('should route to sugarcrmAccount.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'sugarcrmAccountCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
diff --git a/server/api/sugarcrm_account/sugarcrm_account.controller.js b/server/api/sugarcrm_account/sugarcrm_account.controller.js
new file mode 100644
index 0000000..cb7d78d
--- /dev/null
+++ b/server/api/sugarcrm_account/sugarcrm_account.controller.js
@@ -0,0 +1,259 @@
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/sugarcrm/accounts              ->  index
+ * POST    /api/sugarcrm/accounts              ->  create
+ * GET     /api/sugarcrm/accounts/:id          ->  show
+ * PUT     /api/sugarcrm/accounts/:id          ->  update
+ * DELETE  /api/sugarcrm/accounts/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+var util = require('util');
+
+var SugarcrmAccount = require('../../models').SugarcrmAccount;
+
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of SugarcrmAccounts
+exports.index = function(req, res) {
+  var attributes = ['description', 'name', 'username', 'remoteUri'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  SugarcrmAccount
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      return res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      return res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+}
+
+// Gets a single SugarcrmAccount from the DB
+exports.show = function(req, res) {
+  SugarcrmAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Creates a new SugarcrmAccount in the DB
+exports.create = function(req, res) {
+  SugarcrmAccount.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing SugarcrmAccount in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  SugarcrmAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a SugarcrmAccount from the DB
+exports.destroy = function(req, res) {
+  SugarcrmAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
+
+exports.checkAccount = function(req, res) {
+  SugarcrmAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(function(account) {
+      var sugar = require('node-sugarcrm-client');
+      sugar.init({
+        apiURL: stripTrailingSlash(account.remoteUri) + "/service/v4_1/rest.php",
+        login: account.username,
+        passwd: account.password
+      });
+      sugar.login(function(sessionId) {
+        if (!sessionId) {
+          return res.sendStatus(400);
+        }
+        return res.sendStatus(200);
+      });
+    })
+    .catch(handleError(res));
+}
+
+exports.bulkDestroy = function(req, res) {
+  SugarcrmAccount
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.accountValidation = function(req, res) {
+  var where = {};
+  where[req.params.field] = req.body.value;
+  SugarcrmAccount
+    .findAndCountAll({
+      where: where
+    })
+    .then(function(result) {
+      if (result.count) {
+        return res.status(200).send({
+          isValid: false,
+          value: req.body.value
+        });
+      }
+      return res.status(200).send({
+        isValid: true,
+        value: req.body.value
+      });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.getFields = function(req, res) {
+  var sugar = require('node-sugarcrm-client');
+  SugarcrmAccount.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(function(account) {
+      sugar.init({
+        apiURL: stripTrailingSlash(account.remoteUri) + "/service/v4_1/rest.php",
+        login: account.username,
+        passwd: account.password
+      });
+      sugar.login(function(sessionId) {
+        if (!sessionId) {
+          return res.sendStatus(400);
+        }
+        var params = {
+          session: sessionId,
+          module_name: "Cases"
+        };
+        sugar.call("get_module_fields", params, function(result, err) {
+          if (err) {
+            return res.sendStatus(400);
+          }
+          return res.status(200).send(result.module_fields);
+        });
+      });
+    })
+    .catch(handleError(res));
+};
+
+function stripTrailingSlash(str) {
+  if (str.substr(-1) === '/') {
+    return str.substr(0, str.length - 1);
+  }
+  return str;
+}
diff --git a/server/api/sugarcrm_account/sugarcrm_account.socket.js b/server/api/sugarcrm_account/sugarcrm_account.socket.js
new file mode 100644
index 0000000..859bf6d
--- /dev/null
+++ b/server/api/sugarcrm_account/sugarcrm_account.socket.js
@@ -0,0 +1,24 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var SugarcrmAccount = require('../../models').SugarcrmAccount;
+
+exports.register = function(socket) {
+  SugarcrmAccount.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  SugarcrmAccount.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('sugarcrm_account:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('sugarcrm_account:remove', doc);
+}
diff --git a/server/api/sugarcrm_configuration/index.js b/server/api/sugarcrm_configuration/index.js
new file mode 100644
index 0000000..90111bf
--- /dev/null
+++ b/server/api/sugarcrm_configuration/index.js
@@ -0,0 +1,18 @@
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./sugarcrm_configuration.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.post('/:id/:type', auth.isAuthenticated(), controller.addConfigurationField);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+
+module.exports = router;
diff --git a/server/api/sugarcrm_configuration/index.spec.js b/server/api/sugarcrm_configuration/index.spec.js
new file mode 100644
index 0000000..ba1b022
--- /dev/null
+++ b/server/api/sugarcrm_configuration/index.spec.js
@@ -0,0 +1,97 @@
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var sugarcrmConfigurationCtrlStub = {
+  index: 'sugarcrmConfigurationCtrl.index',
+  show: 'sugarcrmConfigurationCtrl.show',
+  create: 'sugarcrmConfigurationCtrl.create',
+  update: 'sugarcrmConfigurationCtrl.update',
+  destroy: 'sugarcrmConfigurationCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var sugarcrmConfigurationIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './sugarcrm_configuration.controller': sugarcrmConfigurationCtrlStub
+});
+
+describe('SugarcrmConfiguration API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(sugarcrmConfigurationIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/sugarcrm/configurations', function() {
+
+    it('should route to sugarcrmConfiguration.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'sugarcrmConfigurationCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/sugarcrm/configurations/:id', function() {
+
+    it('should route to sugarcrmConfiguration.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'sugarcrmConfigurationCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/sugarcrm/configurations', function() {
+
+    it('should route to sugarcrmConfiguration.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'sugarcrmConfigurationCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/sugarcrm/configurations/:id', function() {
+
+    it('should route to sugarcrmConfiguration.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'sugarcrmConfigurationCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/sugarcrm/configurations/:id', function() {
+
+    it('should route to sugarcrmConfiguration.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'sugarcrmConfigurationCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/sugarcrm/configurations/:id', function() {
+
+    it('should route to sugarcrmConfiguration.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'sugarcrmConfigurationCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
diff --git a/server/api/sugarcrm_configuration/sugarcrm_configuration.controller.js b/server/api/sugarcrm_configuration/sugarcrm_configuration.controller.js
new file mode 100644
index 0000000..5918283
--- /dev/null
+++ b/server/api/sugarcrm_configuration/sugarcrm_configuration.controller.js
@@ -0,0 +1,145 @@
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/sugarcrm/configurations              ->  index
+ * POST    /api/sugarcrm/configurations              ->  create
+ * GET     /api/sugarcrm/configurations/:id          ->  show
+ * PUT     /api/sugarcrm/configurations/:id          ->  update
+ * DELETE  /api/sugarcrm/configurations/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+
+var SugarcrmConfiguration = require('../../models').SugarcrmConfiguration;
+var SugarcrmField = require('../../models').SugarcrmField;
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) {
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of SugarcrmConfigurations
+exports.index = function(req, res) {
+  SugarcrmConfiguration.findAll({
+      where: req.query
+    })
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Gets a single SugarcrmConfiguration from the DB
+exports.show = function(req, res) {
+  SugarcrmConfiguration.find({
+      where: {
+        id: req.params.id
+      },
+      include: [{
+        model: SugarcrmField,
+        as: 'Subject'
+      }, {
+        model: SugarcrmField,
+        as: 'Description'
+      }, {
+        model: SugarcrmField,
+        as: 'Field'
+      }]
+    })
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Creates a new SugarcrmConfiguration in the DB
+exports.create = function(req, res) {
+  SugarcrmConfiguration.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing SugarcrmConfiguration in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  SugarcrmConfiguration.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a SugarcrmConfiguration from the DB
+exports.destroy = function(req, res) {
+  SugarcrmConfiguration.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
+
+exports.addConfigurationField = function(req, res, next) {
+  var sugarcrmConfiguration;
+  SugarcrmConfiguration
+    .findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(function(sugarcrm_configuration) {
+      sugarcrmConfiguration = sugarcrm_configuration;
+      return SugarcrmField.create(req.body)
+    })
+    .then(function(sugarcrmField) {
+      switch (req.params.type) {
+        case 'subject':
+          return [sugarcrmConfiguration.addSubject(sugarcrmField), sugarcrmField];
+        case 'description':
+          return [sugarcrmConfiguration.addDescription(sugarcrmField), sugarcrmField];
+        case 'field':
+          return [sugarcrmConfiguration.addField(sugarcrmField), sugarcrmField];
+      }
+    })
+    .spread(function(data, sugarcrmField) {
+      return res.status(201).json(sugarcrmField);
+    })
+    .catch(handleError(res));
+};
diff --git a/server/api/sugarcrm_configuration/sugarcrm_configuration.socket.js b/server/api/sugarcrm_configuration/sugarcrm_configuration.socket.js
new file mode 100644
index 0000000..c4464da
--- /dev/null
+++ b/server/api/sugarcrm_configuration/sugarcrm_configuration.socket.js
@@ -0,0 +1,24 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var SugarcrmConfiguration = require('../../models').SugarcrmConfiguration;
+
+exports.register = function(socket) {
+  SugarcrmConfiguration.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  SugarcrmConfiguration.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('sugarcrm_configuration:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('sugarcrm_configuration:remove', doc);
+}
diff --git a/server/api/sugarcrm_field/index.js b/server/api/sugarcrm_field/index.js
new file mode 100644
index 0000000..edc0dc9
--- /dev/null
+++ b/server/api/sugarcrm_field/index.js
@@ -0,0 +1,18 @@
+'use strict';
+
+var express = require('express');
+var auth = require('../../auth/auth.service');
+var controller = require('./sugarcrm_field.controller');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+
+module.exports = router;
diff --git a/server/api/sugarcrm_field/index.spec.js b/server/api/sugarcrm_field/index.spec.js
new file mode 100644
index 0000000..f8a20f7
--- /dev/null
+++ b/server/api/sugarcrm_field/index.spec.js
@@ -0,0 +1,97 @@
+'use strict';
+
+var proxyquire = require('proxyquire').noPreserveCache();
+
+var sugarcrmFieldCtrlStub = {
+  index: 'sugarcrmFieldCtrl.index',
+  show: 'sugarcrmFieldCtrl.show',
+  create: 'sugarcrmFieldCtrl.create',
+  update: 'sugarcrmFieldCtrl.update',
+  destroy: 'sugarcrmFieldCtrl.destroy'
+};
+
+var routerStub = {
+  get: sinon.spy(),
+  put: sinon.spy(),
+  patch: sinon.spy(),
+  post: sinon.spy(),
+  delete: sinon.spy()
+};
+
+// require the index with our stubbed out modules
+var sugarcrmFieldIndex = proxyquire('./index.js', {
+  'express': {
+    Router: function() {
+      return routerStub;
+    }
+  },
+  './sugarcrm_field.controller': sugarcrmFieldCtrlStub
+});
+
+describe('SugarcrmField API Router:', function() {
+
+  it('should return an express router instance', function() {
+    expect(sugarcrmFieldIndex).to.equal(routerStub);
+  });
+
+  describe('GET /api/sugarcrm/fields', function() {
+
+    it('should route to sugarcrmField.controller.index', function() {
+      expect(routerStub.get
+        .withArgs('/', 'sugarcrmFieldCtrl.index')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('GET /api/sugarcrm/fields/:id', function() {
+
+    it('should route to sugarcrmField.controller.show', function() {
+      expect(routerStub.get
+        .withArgs('/:id', 'sugarcrmFieldCtrl.show')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('POST /api/sugarcrm/fields', function() {
+
+    it('should route to sugarcrmField.controller.create', function() {
+      expect(routerStub.post
+        .withArgs('/', 'sugarcrmFieldCtrl.create')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PUT /api/sugarcrm/fields/:id', function() {
+
+    it('should route to sugarcrmField.controller.update', function() {
+      expect(routerStub.put
+        .withArgs('/:id', 'sugarcrmFieldCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('PATCH /api/sugarcrm/fields/:id', function() {
+
+    it('should route to sugarcrmField.controller.update', function() {
+      expect(routerStub.patch
+        .withArgs('/:id', 'sugarcrmFieldCtrl.update')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+  describe('DELETE /api/sugarcrm/fields/:id', function() {
+
+    it('should route to sugarcrmField.controller.destroy', function() {
+      expect(routerStub.delete
+        .withArgs('/:id', 'sugarcrmFieldCtrl.destroy')
+        ).to.have.been.calledOnce;
+    });
+
+  });
+
+});
diff --git a/server/api/sugarcrm_field/sugarcrm_field.controller.js b/server/api/sugarcrm_field/sugarcrm_field.controller.js
new file mode 100644
index 0000000..eb6fe3d
--- /dev/null
+++ b/server/api/sugarcrm_field/sugarcrm_field.controller.js
@@ -0,0 +1,104 @@
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/sugarcrm/fields              ->  index
+ * POST    /api/sugarcrm/fields              ->  create
+ * GET     /api/sugarcrm/fields/:id          ->  show
+ * PUT     /api/sugarcrm/fields/:id          ->  update
+ * DELETE  /api/sugarcrm/fields/:id          ->  destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+
+var SugarcrmField = require('../../models').SugarcrmField;
+
+
+function handleError(res, statusCode) {
+  statusCode = statusCode || 500;
+  return function(err) {
+    res.status(statusCode).send(err);
+  };
+}
+
+function responseWithResult(res, statusCode) {
+  statusCode = statusCode || 200;
+  return function(entity) {
+    if (entity) {
+      res.status(statusCode).json(entity);
+    }
+  };
+}
+
+function handleEntityNotFound(res) {
+  return function(entity) {
+    if (!entity) {
+      res.status(404).end();
+      return null;
+    }
+    return entity;
+  };
+}
+
+function saveUpdates(updates) {
+  return function(entity) {
+    return entity.updateAttributes(updates)
+      .then(function(updated) { 
+        return updated;
+      });
+  };
+}
+
+function removeEntity(res) {
+  return function(entity) {
+    if (entity) {
+      return entity.destroy()
+        .then(function() {
+          res.status(204).end();
+        });
+    }
+  };
+}
+
+// Gets a list of SugarcrmFields
+exports.index = function(req, res) {
+  SugarcrmField.findAll()
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Gets a single SugarcrmField from the DB
+exports.show = function(req, res) {
+  SugarcrmField.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Creates a new SugarcrmField in the DB
+exports.create = function(req, res) {
+  SugarcrmField.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing SugarcrmField in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  SugarcrmField.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a SugarcrmField from the DB
+exports.destroy = function(req, res) {
+  SugarcrmField.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}
diff --git a/server/api/sugarcrm_field/sugarcrm_field.socket.js b/server/api/sugarcrm_field/sugarcrm_field.socket.js
new file mode 100644
index 0000000..bcc89cc
--- /dev/null
+++ b/server/api/sugarcrm_field/sugarcrm_field.socket.js
@@ -0,0 +1,24 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var SugarcrmField = require('../../models').SugarcrmField;
+
+exports.register = function(socket) {
+  SugarcrmField.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  SugarcrmField.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+};
+
+function onSave(socket, doc, cb) {
+  socket.emit('sugarcrm_field:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('sugarcrm_field:remove', doc);
+}
diff --git a/server/api/tag/tag.controller.js b/server/api/tag/tag.controller.js
index ad98ba0..d7ba837 100644
--- a/server/api/tag/tag.controller.js
+++ b/server/api/tag/tag.controller.js
@@ -45,6 +45,7 @@ exports.index = function(req, res) {
         query.where[key].$like = '%' + value + '%';
     }
   });
+  console.log(query);
 
   Tag
     .findAndCountAll(query)
@@ -133,7 +134,7 @@ exports.update = function(req, res) {
       }
       if (tags.length > 0) {
         return res.status(500).send({
-          message: 'MESSAGE_EXIST_Tag'
+          message: 'MESSAGE_EXIST_TAG'
         })
       }
       if (req.body.id) {
diff --git a/server/api/user/user.ami.js b/server/api/user/user.ami.js
index 20588bc..d26deb4 100644
--- a/server/api/user/user.ami.js
+++ b/server/api/user/user.ami.js
@@ -7,12 +7,12 @@ var config = require('../../config/environment');
 var User = require('../../models').User;
 var VoiceExtension = require('../../models').VoiceExtension;
 
-exports.register = function(ami) {
-  User.afterCreate(function(doc) {
+exports.register = function (ami) {
+  User.afterCreate(function (doc) {
     createCallerID(doc);
     createExtension(doc);
   })
-  User.afterUpdate(function(doc) {
+  User.afterUpdate(function (doc) {
     updateExtension(doc);
     createCallerID(doc);
   })
@@ -24,21 +24,24 @@ function createCallerID(doc) {
     doc.callerid = util.format('"%s" <%s>', doc.name, doc.internal);
     doc.save();
   }
+
+  return;
 }
 
 function updateExtension(doc) {
   if (doc.changed('name')) {
-    doc.getUserExtensions()
-      .then(function(userExtensions) {
-        userExtensions.forEach(function(elem) {
+    doc
+      .getUserExtensions()
+      .then(function (userExtensions) {
+        userExtensions.forEach(function (elem) {
           elem.exten = (elem.exten === doc._previousDataValues.internal) ? doc.internal : doc.name;
           elem.appdata = 'SIP/' + doc.name;
           elem.save();
         })
       })
-      .catch(function(err) {
+      .catch(function (err) {
         console.log(err);
-      })
+      });
   }
 }
 
@@ -62,9 +65,10 @@ function createExtension(doc) {
       UserId: doc.id,
       type: 'internal'
     }];
-    VoiceExtension
+
+    return VoiceExtension
       .bulkCreate(userDials)
-      .catch(function(err) {
+      .catch(function (err) {
         console.log(err);
       });
   }
diff --git a/server/api/user_has_chat_room/user_has_chat_room.socket.js b/server/api/user_has_chat_room/user_has_chat_room.socket.js
index d265be2..c58a829 100644
--- a/server/api/user_has_chat_room/user_has_chat_room.socket.js
+++ b/server/api/user_has_chat_room/user_has_chat_room.socket.js
@@ -3,46 +3,56 @@
  */
 
 'use strict';
-
+var _ = require('lodash');
 var User = require('../../models').User;
 var ChatRoom = require('../../models').ChatRoom;
 var ChatVisitor = require('../../models').ChatVisitor;
 var UserHasChatRoom = require('../../models').UserHasChatRoom;
 
-exports.register = function(socket) {
-  UserHasChatRoom.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  UserHasChatRoom.afterUpdate(function(doc) {
+exports.register = function (socket) {
+  UserHasChatRoom.afterCreate(function (doc) {
     onSave(socket, doc);
   });
-  UserHasChatRoom.afterDestroy(function(doc) {
+  UserHasChatRoom.afterDestroy(function (doc) {
     onRemove(socket, doc);
   });
 }
 
-function onSave(socket, doc, cb) {
-  if (socket.userId == doc.UserId) {
-    console.log('user_has_chat_room:save');
-    ChatRoom
-      .findById(doc.ChatRoomId, {
-        include: [{
-          model: ChatVisitor,
-          attributes: ['id', 'fullname', 'email']
-        }, {
-          model: User,
-          attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal']
-        }]
-      })
-      .then(function(chatRoom) {
-        socket.emit('user_has_chat_room:save', chatRoom);
-      })
-      .catch(function(err) {
-        console.error(err);
+function onSave(socket, doc) {
+
+  var _chatRoom;
+
+  return ChatRoom
+    .findById(doc.ChatRoomId, {
+      include: [{
+        model: ChatVisitor,
+        attributes: ['id', 'email', 'fullname']
+      }, {
+        model: User,
+        attributes: ['id', 'email', 'name', 'fullname']
+      }]
+    })
+    .then(function (chatRoom) {
+      _chatRoom = chatRoom;
+      _chatRoom.dataValues.ChatMessages = [];
+
+      console.log('_chatRoom', _chatRoom);
+
+      var ids = _.pluck(_chatRoom.Users, 'id');
+
+      ids.forEach(function (id) {
+        if (socket.userId == id) {
+          socket.emit('user_has_chat_room:save', _chatRoom.dataValues)
+        }
       });
-  }
+
+      return;
+    })
+    .catch(function (err) {
+      console.error(err);
+    });
 }
 
-function onRemove(socket, doc, cb) {
+function onRemove(socket, doc) {
   socket.emit('user_has_chat_room:remove', doc);
 }
diff --git a/server/api/voice_extension/voice_extension.controller.js b/server/api/voice_extension/voice_extension.controller.js
index 83cfc73..9701d40 100644
--- a/server/api/voice_extension/voice_extension.controller.js
+++ b/server/api/voice_extension/voice_extension.controller.js
@@ -117,39 +117,20 @@ var Applications = {
 };
 
 // Get list of voice_extensions
-exports.index = function(req, res) {
+exports.index = function (req, res) {
   VoiceExtension
     .findAll()
-    .then(function(voice_extensions) {
+    .then(function (voice_extensions) {
       return res.status(200).send(voice_extensions);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
-// Get list of voice_extensions by route
-// exports.showByRoute = function(req, res) {
-//   VoiceExtension
-//     .findAll({
-//       where: {
-//         type: req.params.route,
-//         VoiceExtensionId: null,
-//         app: 'NoOp'
-//       }
-//     })
-//     .then(function(voice_extensions) {
-//       return res.status(200).send(voice_extensions);
-//     })
-//     .catch(function(err) {
-//       return handleError(res, err);
-//     });
-// };
-
 // Get list of agents
-exports.showByRoute = function(req, res, next) {
+exports.showByRoute = function (req, res, next) {
 
-  console.log(req.params);
   var attributes = ['context', 'exten', 'app', 'appdata'];
   var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
   var page = req.query.page ? parseInt(req.query.page, 10) : 0;
@@ -164,38 +145,38 @@ exports.showByRoute = function(req, res, next) {
     offset: page * per_page
   };
 
-  _.forIn(req.query, function(value, key) {
+  _.forIn(req.query, function (value, key) {
     switch (key) {
-      case 'per_page':
-      case 'page':
-        break;
-      case 'sort_by':
-        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
-        break;
-      case 'sort_order':
-        break;
-      case '$':
-        query.where.$or = [];
-        attributes.forEach(function(attribute) {
-          var tmp = {};
-          tmp[attribute] = {
-            $like: '%' + value + '%'
-          };
-
-          query.where.$or.push(tmp);
-        });
-        break;
-      default:
-        query.where[key] = {
-          $like: {}
+    case 'per_page':
+    case 'page':
+      break;
+    case 'sort_by':
+      query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+      break;
+    case 'sort_order':
+      break;
+    case '$':
+      query.where.$or = [];
+      attributes.forEach(function (attribute) {
+        var tmp = {};
+        tmp[attribute] = {
+          $like: '%' + value + '%'
         };
-        query.where[key].$like = '%' + value + '%';
+
+        query.where.$or.push(tmp);
+      });
+      break;
+    default:
+      query.where[key] = {
+        $like: {}
+      };
+      query.where[key].$like = '%' + value + '%';
     }
   });
 
   VoiceExtension
     .findAndCountAll(query)
-    .then(function(result) {
+    .then(function (result) {
 
       var total_pages = Math.ceil(result.count / per_page);
       var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
@@ -210,7 +191,7 @@ exports.showByRoute = function(req, res, next) {
       });
 
     })
-    .catch(function(err) {
+    .catch(function (err) {
       res.status(500).send({
         error: 'Something blew up!'
       });
@@ -219,7 +200,7 @@ exports.showByRoute = function(req, res, next) {

 // Get list of voice_extensions by route
-exports.showAppsByRoute = function(req, res) {
+exports.showAppsByRoute = function (req, res) {
   VoiceExtension
     .findAll({
       where: {
@@ -227,32 +208,31 @@ exports.showAppsByRoute = function(req, res) {
         isApp: true
       }
     })
-    .then(function(voice_extensions) {
+    .then(function (voice_extensions) {
       return res.status(200).send(voice_extensions);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Get a single voice_extension or application
-exports.show = function(req, res) {
+exports.show = function (req, res) {
   VoiceExtension
     .findById(req.params.id)
-    .then(function(voice_extension) {
+    .then(function (voice_extension) {
       if (!voice_extension) {
         return res.sendStatus(404);
       }
       return res.send(voice_extension);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Validate the existence of a route
-exports.routeValidation = function(req, res) {
-  //console.log(req.body);
+exports.routeValidation = function (req, res) {
   VoiceExtension
     .findAll({
       where: {
@@ -261,13 +241,13 @@ exports.routeValidation = function(req, res) {
         type: req.body.type
       }
     })
-    .then(function(voice_extension) {
+    .then(function (voice_extension) {
       if (!voice_extension) {
         return res.sendStatus(404);
       }
       return res.send(voice_extension);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
@@ -388,7 +368,7 @@ exports.routeValidation = function(req, res) {
 //     });
 // }
 
-exports.sortAppsByRoute = function(req, res, next) {
+exports.sortAppsByRoute = function (req, res, next) {
   // console.log('finding and saving old applications');
   VoiceExtension
     .findAll({
@@ -396,9 +376,9 @@ exports.sortAppsByRoute = function(req, res, next) {
         appGroup: req.body.applications
       }
     })
-    .then(function(voiceApplications) {
+    .then(function (voiceApplications) {
       // console.log('found ad saved applications');
-      return sequelize.transaction(function(t) {
+      return sequelize.transaction(function (t) {
           // console.log('destroying old applications from db');
           return VoiceExtension.destroy({
               where: {
@@ -407,12 +387,10 @@ exports.sortAppsByRoute = function(req, res, next) {
             }, {
               transaction: t
             })
-            .then(function() {
-              // console.log('destroyed old applications from db');
+            .then(function () {
               var priority = 2;
-              // console.log('iterating sorted applications ids');
-              req.body.applications.forEach(function(sortedElem) {
-                var tmpElem = _.find(voiceApplications, function(elem) {
+              req.body.applications.forEach(function (sortedElem) {
+                var tmpElem = _.find(voiceApplications, function (elem) {
                   return (elem.appGroup == sortedElem && elem.isApp === true);
                 });
                 var application = _.cloneDeep(Applications[tmpElem.app]);
@@ -429,17 +407,15 @@ exports.sortAppsByRoute = function(req, res, next) {
                     appdata: 'Custom Application End'
                   }];
                 }
-                //console.log('PRIORITY');
-                //console.log(priority);
                 var appGroup = util.format('%s%s%s', tmpElem.context, tmpElem.exten, priority);
                 tmpElem.interval = tmpElem.interval || '*,*,*,*';
-                var tmpIntervals = _.filter(voiceApplications, function(elem) {
+                var tmpIntervals = _.filter(voiceApplications, function (elem) {
                   return (elem.appGroup == sortedElem && elem.isInterval === true);
                 });
                 if (tmpIntervals && tmpIntervals.length > 0) {
                   // console.log('found custom interval, adding to app');
                   application.splice(0, 1);
-                  tmpIntervals.forEach(function(elem, index) {
+                  tmpIntervals.forEach(function (elem, index) {
 
                     application.unshift({
                       app: 'GotoIfTimeFromArray',
@@ -461,7 +437,7 @@ exports.sortAppsByRoute = function(req, res, next) {
               });
             })
         })
-        .then(function() {
+        .then(function () {
           // console.log('finished creating, now searching the sorted and saved apps');
           // VoiceExtension
           //   .findAll({
@@ -477,11 +453,11 @@ exports.sortAppsByRoute = function(req, res, next) {
           //   })
           return res.sendStatus(201);
         })
-        .catch(function(err) {
+        .catch(function (err) {
           return handleError(res, err);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return next(err);
     });
 };
@@ -499,7 +475,7 @@ exports.sortAppsByRoute = function(req, res, next) {
 // };
 
 // Creates a new voiceApplication in the DB.
-exports.create = function(req, res, next) {
+exports.create = function (req, res, next) {
   // //console.log(req.body);
   var application;
   var appGroup;
@@ -509,7 +485,7 @@ exports.create = function(req, res, next) {
       where: {
         VoiceExtensionId: req.body.VoiceExtensionId
       }
-    }).then(function(max) {
+    }).then(function (max) {
       // SET PRIORITY
       if (req.body.VoiceExtensionId) {
         req.body.priority = max ? ++max : 2;
@@ -538,13 +514,13 @@ exports.create = function(req, res, next) {
               IntervalId: (req.body.IntervalId !== null) ? req.body.IntervalId : 0
             }
           })
-          .then(function(Intervals) {
+          .then(function (Intervals) {
             var intervals = [];
             var gotoInterval;
             if (Intervals && Intervals.length > 0) {
               application.splice(0, 1);
               intervals = _.pluck(Intervals, 'dataValues');
-              intervals.forEach(function(elem, index) {
+              intervals.forEach(function (elem, index) {
                 // gotoInterval = createInterval(elem);
                 application.unshift({
                   app: 'GotoIfTimeFromArray',
@@ -558,7 +534,7 @@ exports.create = function(req, res, next) {
             appCreate(application, req.body, appGroup, intervals);
             VoiceExtension
               .bulkCreate(application)
-              .then(function(voiceExtensions) {
+              .then(function (voiceExtensions) {
                 return res.status(201).send(voiceExtensions);
               })
           })
@@ -571,7 +547,7 @@ exports.create = function(req, res, next) {
               type: req.body.type,
             }
           })
-          .then(function(existingExtensions) {
+          .then(function (existingExtensions) {
             //console.log(existingExtensions);
             //console.log('Finding app row.....');
             if (!existingExtensions) {
@@ -585,21 +561,21 @@ exports.create = function(req, res, next) {
             req.body.priority = 1;
             VoiceExtension
               .create(req.body)
-              .then(function(voiceExtensions) {
+              .then(function (voiceExtensions) {
                 return res.status(201).send(voiceExtensions);
               })
-              .catch(function(err) {
+              .catch(function (err) {
                 return res.handleError(err);
               })
           })
-          .catch(function(err) {
+          .catch(function (err) {
             return res.handleError(err);
           });
       }
       // //console.log(application);
 
     })
-    .catch(function(err) {
+    .catch(function (err) {
       next(err);
     });
 };
@@ -651,311 +627,311 @@ function appCreate(application, element, appGroup, intervals, priority) {
     element.app = 'custom'; //in questo modo posso rimuovere il default dello switch, ma lo lascio per completezza
   }
   switch (element.app) {
-    case 'Dial':
-      if (!element.callerID) {
-        _.remove(application, {
-          app: 'Set'
-        });
-      }
-      application.forEach(function(elem, index) {
-        elem.exten = element.exten;
-        elem.type = element.type;
-        elem.context = element.context;
-        elem.VoiceExtensionId = element.VoiceExtensionId;
-        elem.priority = priority ? priority++ : element.priority++;
-        elem.appGroup = appGroup;
-        switch (elem.app) {
-          case 'GotoIfTime':
-            elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
-            break;
-          case 'GotoIfTimeFromArray':
-            elem.app = 'GotoIfTime';
-            elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
-            break;
-          case 'Dial':
-            if (element.type === 'outbound') {
-              elem.IntervalId = element.IntervalId;
-              elem.interval = element.interval;
-              elem.trunk = element.trunk;
-              elem.TrunkId = element.TrunkId;
-              elem.cutdigits = element.cutdigits || 0;
-              elem.callerID = element.callerID || null;
-              // elem.appdata = util.format('SIP/${EXTEN:%d}@%s', elem.cutdigits, elem.trunk);
-            } else {
-              elem.IntervalId = element.IntervalId;
-              elem.interval = element.interval;
-              elem.interface = element.interface;
-              elem.app_options = element.app_options || '';
-              elem.timeout = element.timeout || '';
-              elem.url = element.url || '';
-              elem.appdata = util.format(elem.appdata, element.interface, elem.timeout, elem.app_options ? elem.app_options.replace(',', '') : '', elem.url);
-            }
-            break;
-          case 'Set':
-            elem.appdata = util.format(elem.appdata, element.callerID);
-            break;
-          case 'NoOp':
-            if (element.type === 'outbound') {
-              elem.appdata = 'Outbound Dial Application End';
-            }
-            break;
-          default:
-
-        }
+  case 'Dial':
+    if (!element.callerID) {
+      _.remove(application, {
+        app: 'Set'
       });
-      break;
-    case 'Queue':
-      application.forEach(function(elem, index) {
-        elem.exten = element.exten;
-        elem.type = element.type;
-        elem.context = element.context;
-        elem.VoiceExtensionId = element.VoiceExtensionId;
-        elem.priority = priority ? priority++ : element.priority++;
-        elem.appGroup = appGroup;
-        switch (elem.app) {
-          case 'GotoIfTime':
-            elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
-            break;
-          case 'GotoIfTimeFromArray':
-            elem.app = 'GotoIfTime';
-            elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
-            break;
-          case 'Queue':
-            elem.IntervalId = element.IntervalId;
-            elem.app_options = element.app_options || '';
-            elem.audiofile = element.audiofile || '';
-            elem.queue = element.queue;
-            elem.interval = element.interval;
-            elem.interface = element.interface;
-            elem.app_options = element.app_options;
-            elem.timeout = element.timeout || '';
-            elem.url = element.url || '';
-            elem.appdata = util.format(elem.appdata, elem.queue, elem.app_options ? elem.app_options.replace(',', '') : '', elem.url, elem.audiofile, elem.timeout);
-            break;
-          default:
-
+    }
+    application.forEach(function (elem, index) {
+      elem.exten = element.exten;
+      elem.type = element.type;
+      elem.context = element.context;
+      elem.VoiceExtensionId = element.VoiceExtensionId;
+      elem.priority = priority ? priority++ : element.priority++;
+      elem.appGroup = appGroup;
+      switch (elem.app) {
+      case 'GotoIfTime':
+        elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
+        break;
+      case 'GotoIfTimeFromArray':
+        elem.app = 'GotoIfTime';
+        elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
+        break;
+      case 'Dial':
+        if (element.type === 'outbound') {
+          elem.IntervalId = element.IntervalId;
+          elem.interval = element.interval;
+          elem.trunk = element.trunk;
+          elem.TrunkId = element.TrunkId;
+          elem.cutdigits = element.cutdigits || 0;
+          elem.callerID = element.callerID || null;
+          // elem.appdata = util.format('SIP/${EXTEN:%d}@%s', elem.cutdigits, elem.trunk);
+        } else {
+          elem.IntervalId = element.IntervalId;
+          elem.interval = element.interval;
+          elem.interface = element.interface;
+          elem.app_options = element.app_options || '';
+          elem.timeout = element.timeout || '';
+          elem.url = element.url || '';
+          elem.appdata = util.format(elem.appdata, element.interface, elem.timeout, elem.app_options ? elem.app_options.replace(',', '') : '', elem.url);
         }
-      });
-      break;
-    case 'Playback':
-      application.forEach(function(elem, index) {
-        elem.exten = element.exten;
-        elem.type = element.type;
-        elem.context = element.context;
-        elem.VoiceExtensionId = element.VoiceExtensionId;
-        elem.priority = priority ? priority++ : element.priority++;
-        elem.appGroup = appGroup;
-        switch (elem.app) {
-          case 'GotoIfTime':
-            elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
-            break;
-          case 'GotoIfTimeFromArray':
-            elem.app = 'GotoIfTime';
-            elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
-            break;
-          case 'Playback':
-            elem.IntervalId = element.IntervalId;
-            elem.interval = element.interval;
-            elem.audiofile = element.audiofile || '';
-            elem.app_options = element.app_options || '';
-            elem.appdata = util.format(elem.appdata, elem.audiofile, elem.app_options ? elem.app_options.replace(',', '') : '');
-            break;
-          default:
-
+        break;
+      case 'Set':
+        elem.appdata = util.format(elem.appdata, element.callerID);
+        break;
+      case 'NoOp':
+        if (element.type === 'outbound') {
+          elem.appdata = 'Outbound Dial Application End';
         }
-      });
-      break;
-    case 'AGI':
-      application.forEach(function(elem, index) {
-        elem.exten = element.exten;
-        elem.type = element.type;
-        elem.context = element.context;
-        elem.VoiceExtensionId = element.VoiceExtensionId;
-        elem.priority = priority ? priority++ : element.priority++;
-        elem.appGroup = appGroup;
-        switch (elem.app) {
-          case 'GotoIfTime':
-            elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
-            break;
-          case 'GotoIfTimeFromArray':
-            elem.app = 'GotoIfTime';
-            elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
-            break;
-          case 'AGI':
-            elem.IntervalId = element.IntervalId;
-            elem.interval = element.interval;
-            elem.project = element.project;
-            elem.appdata = util.format(elem.appdata, elem.project);
-            break;
-          default:
+        break;
+      default:
 
-        }
-      });
-      break;
-    case 'Goto':
-      application.forEach(function(elem, index) {
-        elem.exten = element.exten;
-        elem.type = element.type;
-        elem.context = element.context;
-        elem.VoiceExtensionId = element.VoiceExtensionId;
-        elem.priority = priority ? priority++ : element.priority++;
-        elem.appGroup = appGroup;
-        switch (elem.app) {
-          case 'GotoIfTime':
-            elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
-            break;
-          case 'GotoIfTimeFromArray':
-            elem.app = 'GotoIfTime';
-            elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
-            break;
-          case 'Goto':
-            elem.IntervalId = element.IntervalId;
-            elem.interval = element.interval;
-            elem.alt_priority = element.alt_priority;
-            elem.alt_extension = element.alt_extension;
-            elem.alt_context = element.alt_context;
-            elem.appdata = util.format(elem.appdata, elem.alt_context, elem.alt_extension, elem.alt_priority);
-            break;
-          default:
+      }
+    });
+    break;
+  case 'Queue':
+    application.forEach(function (elem, index) {
+      elem.exten = element.exten;
+      elem.type = element.type;
+      elem.context = element.context;
+      elem.VoiceExtensionId = element.VoiceExtensionId;
+      elem.priority = priority ? priority++ : element.priority++;
+      elem.appGroup = appGroup;
+      switch (elem.app) {
+      case 'GotoIfTime':
+        elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
+        break;
+      case 'GotoIfTimeFromArray':
+        elem.app = 'GotoIfTime';
+        elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
+        break;
+      case 'Queue':
+        elem.IntervalId = element.IntervalId;
+        elem.app_options = element.app_options || '';
+        elem.audiofile = element.audiofile || '';
+        elem.queue = element.queue;
+        elem.interval = element.interval;
+        elem.interface = element.interface;
+        elem.app_options = element.app_options;
+        elem.timeout = element.timeout || '';
+        elem.url = element.url || '';
+        elem.appdata = util.format(elem.appdata, elem.queue, elem.app_options ? elem.app_options.replace(',', '') : '', elem.url, elem.audiofile, elem.timeout);
+        break;
+      default:
 
-        }
-      });
-      break;
-    case 'Hangup':
-      application.forEach(function(elem, index) {
-        elem.exten = element.exten;
-        elem.type = element.type;
-        elem.context = element.context;
-        elem.VoiceExtensionId = element.VoiceExtensionId;
-        elem.priority = priority ? priority++ : element.priority++;
-        elem.appGroup = appGroup;
-        switch (elem.app) {
-          case 'GotoIfTime':
-            elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
-            break;
-          case 'GotoIfTimeFromArray':
-            elem.app = 'GotoIfTime';
-            elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
-            break;
-          case 'Hangup':
-            elem.IntervalId = element.IntervalId;
-            elem.interval = element.interval;
-            elem.causecode = element.causecode;
-            elem.appdata = util.format(elem.appdata, elem.causecode);
-            break;
-          default:
+      }
+    });
+    break;
+  case 'Playback':
+    application.forEach(function (elem, index) {
+      elem.exten = element.exten;
+      elem.type = element.type;
+      elem.context = element.context;
+      elem.VoiceExtensionId = element.VoiceExtensionId;
+      elem.priority = priority ? priority++ : element.priority++;
+      elem.appGroup = appGroup;
+      switch (elem.app) {
+      case 'GotoIfTime':
+        elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
+        break;
+      case 'GotoIfTimeFromArray':
+        elem.app = 'GotoIfTime';
+        elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
+        break;
+      case 'Playback':
+        elem.IntervalId = element.IntervalId;
+        elem.interval = element.interval;
+        elem.audiofile = element.audiofile || '';
+        elem.app_options = element.app_options || '';
+        elem.appdata = util.format(elem.appdata, elem.audiofile, elem.app_options ? elem.app_options.replace(',', '') : '');
+        break;
+      default:
 
-        }
-      });
-      break;
-    case 'Set':
-      application.forEach(function(elem, index) {
-        elem.exten = element.exten;
-        elem.type = element.type;
-        elem.context = element.context;
-        elem.VoiceExtensionId = element.VoiceExtensionId;
-        elem.priority = priority ? priority++ : element.priority++;
-        elem.appGroup = appGroup;
-        switch (elem.app) {
-          case 'GotoIfTime':
-            elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
-            break;
-          case 'GotoIfTimeFromArray':
-            elem.app = 'GotoIfTime';
-            elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
-            break;
-          case 'Set':
-            elem.IntervalId = element.IntervalId;
-            elem.interval = element.interval;
-            elem.variable = element.variable;
-            elem.value = element.value;
-            elem.appdata = util.format(elem.appdata, elem.variable, elem.value);
-            break;
-          default:
+      }
+    });
+    break;
+  case 'AGI':
+    application.forEach(function (elem, index) {
+      elem.exten = element.exten;
+      elem.type = element.type;
+      elem.context = element.context;
+      elem.VoiceExtensionId = element.VoiceExtensionId;
+      elem.priority = priority ? priority++ : element.priority++;
+      elem.appGroup = appGroup;
+      switch (elem.app) {
+      case 'GotoIfTime':
+        elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
+        break;
+      case 'GotoIfTimeFromArray':
+        elem.app = 'GotoIfTime';
+        elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
+        break;
+      case 'AGI':
+        elem.IntervalId = element.IntervalId;
+        elem.interval = element.interval;
+        elem.project = element.project;
+        elem.appdata = util.format(elem.appdata, elem.project);
+        break;
+      default:
 
-        }
-      });
-      break;
-    case 'custom':
-      application.forEach(function(elem, index) {
-        elem.exten = element.exten;
-        elem.type = element.type;
-        elem.context = element.context;
-        elem.VoiceExtensionId = element.VoiceExtensionId;
-        elem.priority = priority ? priority++ : element.priority++;
-        elem.appGroup = appGroup;
-        switch (elem.app) {
-          case 'GotoIfTime':
-            elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
-            break;
-          case 'GotoIfTimeFromArray':
-            elem.app = 'GotoIfTime';
-            elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
-            break;
-          case 'custom':
-            elem.IntervalId = element.IntervalId;
-            elem.interval = element.interval;
-            elem.app = elem.customApp = element.customApp;
-            elem.appdata = util.format(elem.appdata, element.appdata);
-            break;
-          default:
+      }
+    });
+    break;
+  case 'Goto':
+    application.forEach(function (elem, index) {
+      elem.exten = element.exten;
+      elem.type = element.type;
+      elem.context = element.context;
+      elem.VoiceExtensionId = element.VoiceExtensionId;
+      elem.priority = priority ? priority++ : element.priority++;
+      elem.appGroup = appGroup;
+      switch (elem.app) {
+      case 'GotoIfTime':
+        elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
+        break;
+      case 'GotoIfTimeFromArray':
+        elem.app = 'GotoIfTime';
+        elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
+        break;
+      case 'Goto':
+        elem.IntervalId = element.IntervalId;
+        elem.interval = element.interval;
+        elem.alt_priority = element.alt_priority;
+        elem.alt_extension = element.alt_extension;
+        elem.alt_context = element.alt_context;
+        elem.appdata = util.format(elem.appdata, elem.alt_context, elem.alt_extension, elem.alt_priority);
+        break;
+      default:
 
-        }
-      });
-      break;
-    case 'Voicemail':
-      application.forEach(function(elem, index) {
-        elem.exten = element.exten;
-        elem.type = element.type;
-        elem.context = element.context;
-        elem.VoiceExtensionId = element.VoiceExtensionId;
-        elem.priority = priority ? priority++ : element.priority++;
-        elem.appGroup = appGroup;
-        switch (elem.app) {
-          case 'GotoIfTime':
-            elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
-            break;
-          case 'GotoIfTimeFromArray':
-            elem.app = 'GotoIfTime';
-            elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
-            break;
-          case 'Voicemail':
-            elem.IntervalId = element.IntervalId;
-            elem.interval = element.interval;
-            elem.mailbox = element.mailbox;
-            elem.appdata = util.format(elem.appdata, elem.mailbox);
-            break;
-          default:
+      }
+    });
+    break;
+  case 'Hangup':
+    application.forEach(function (elem, index) {
+      elem.exten = element.exten;
+      elem.type = element.type;
+      elem.context = element.context;
+      elem.VoiceExtensionId = element.VoiceExtensionId;
+      elem.priority = priority ? priority++ : element.priority++;
+      elem.appGroup = appGroup;
+      switch (elem.app) {
+      case 'GotoIfTime':
+        elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
+        break;
+      case 'GotoIfTimeFromArray':
+        elem.app = 'GotoIfTime';
+        elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
+        break;
+      case 'Hangup':
+        elem.IntervalId = element.IntervalId;
+        elem.interval = element.interval;
+        elem.causecode = element.causecode;
+        elem.appdata = util.format(elem.appdata, elem.causecode);
+        break;
+      default:
 
-        }
-      });
-      break;
-    default:
-      application.forEach(function(elem, index) {
-        elem.exten = element.exten;
-        elem.type = element.type;
-        elem.context = element.context;
-        elem.VoiceExtensionId = element.VoiceExtensionId;
-        elem.priority = priority ? priority++ : element.priority++;
-        elem.appGroup = appGroup;
-        switch (elem.app) {
-          case 'GotoIfTime':
-            elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
-            break;
-          case 'GotoIfTimeFromArray':
-            elem.app = 'GotoIfTime';
-            elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
-            break;
-          case 'custom':
-            elem.IntervalId = element.IntervalId;
-            elem.interval = element.interval;
-            elem.app = elem.customApp = element.customApp;
-            elem.appdata = util.format(elem.appdata, element.appdata);
-            break;
-          default:
+      }
+    });
+    break;
+  case 'Set':
+    application.forEach(function (elem, index) {
+      elem.exten = element.exten;
+      elem.type = element.type;
+      elem.context = element.context;
+      elem.VoiceExtensionId = element.VoiceExtensionId;
+      elem.priority = priority ? priority++ : element.priority++;
+      elem.appGroup = appGroup;
+      switch (elem.app) {
+      case 'GotoIfTime':
+        elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
+        break;
+      case 'GotoIfTimeFromArray':
+        elem.app = 'GotoIfTime';
+        elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
+        break;
+      case 'Set':
+        elem.IntervalId = element.IntervalId;
+        elem.interval = element.interval;
+        elem.variable = element.variable;
+        elem.value = element.value;
+        elem.appdata = util.format(elem.appdata, elem.variable, elem.value);
+        break;
+      default:
 
-        }
-      });
+      }
+    });
+    break;
+  case 'custom':
+    application.forEach(function (elem, index) {
+      elem.exten = element.exten;
+      elem.type = element.type;
+      elem.context = element.context;
+      elem.VoiceExtensionId = element.VoiceExtensionId;
+      elem.priority = priority ? priority++ : element.priority++;
+      elem.appGroup = appGroup;
+      switch (elem.app) {
+      case 'GotoIfTime':
+        elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
+        break;
+      case 'GotoIfTimeFromArray':
+        elem.app = 'GotoIfTime';
+        elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
+        break;
+      case 'custom':
+        elem.IntervalId = element.IntervalId;
+        elem.interval = element.interval;
+        elem.app = elem.customApp = element.customApp;
+        elem.appdata = util.format(elem.appdata, element.appdata);
+        break;
+      default:
+
+      }
+    });
+    break;
+  case 'Voicemail':
+    application.forEach(function (elem, index) {
+      elem.exten = element.exten;
+      elem.type = element.type;
+      elem.context = element.context;
+      elem.VoiceExtensionId = element.VoiceExtensionId;
+      elem.priority = priority ? priority++ : element.priority++;
+      elem.appGroup = appGroup;
+      switch (elem.app) {
+      case 'GotoIfTime':
+        elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
+        break;
+      case 'GotoIfTimeFromArray':
+        elem.app = 'GotoIfTime';
+        elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
+        break;
+      case 'Voicemail':
+        elem.IntervalId = element.IntervalId;
+        elem.interval = element.interval;
+        elem.mailbox = element.mailbox;
+        elem.appdata = util.format(elem.appdata, elem.mailbox);
+        break;
+      default:
+
+      }
+    });
+    break;
+  default:
+    application.forEach(function (elem, index) {
+      elem.exten = element.exten;
+      elem.type = element.type;
+      elem.context = element.context;
+      elem.VoiceExtensionId = element.VoiceExtensionId;
+      elem.priority = priority ? priority++ : element.priority++;
+      elem.appGroup = appGroup;
+      switch (elem.app) {
+      case 'GotoIfTime':
+        elem.appdata = util.format(elem.appdata, element.IntervalId ? '*,*,*,*' : element.interval, elem.context, elem.priority + 1, elem.context, (elem.priority + 2));
+        break;
+      case 'GotoIfTimeFromArray':
+        elem.app = 'GotoIfTime';
+        elem.appdata = util.format(elem.appdata, elem.context, elem.priority + intLength - index, elem.context, (index + 1) < intLength ? (elem.priority + 1) : (elem.priority + 2));
+        break;
+      case 'custom':
+        elem.IntervalId = element.IntervalId;
+        elem.interval = element.interval;
+        elem.app = elem.customApp = element.customApp;
+        elem.appdata = util.format(elem.appdata, element.appdata);
+        break;
+      default:
+
+      }
+    });
 
   }
   if (priority) {
@@ -964,7 +940,7 @@ function appCreate(application, element, appGroup, intervals, priority) {
 }
 
 // Updates an existing voice_extension in the DB.
-exports.update = function(req, res) {
+exports.update = function (req, res) {
   VoiceExtension
     .findAll({
       where: {
@@ -977,7 +953,7 @@ exports.update = function(req, res) {
         }
       }
     })
-    .then(function(existingExtensions) {
+    .then(function (existingExtensions) {
       //console.log(existingExtensions);
       //console.log('Finding app row.....');
       if (!existingExtensions) {
@@ -997,16 +973,16 @@ exports.update = function(req, res) {
             id: req.params.id
           }
         })
-        .then(function(voice_extension) {
+        .then(function (voice_extension) {
           if (!voice_extension) {
             return res.sendStatus(404);
           }
           var updated = _.merge(voice_extension, req.body);
-          return sequelize.transaction(function(t) {
+          return sequelize.transaction(function (t) {
               return updated.save({
                   transaction: t
                 })
-                .then(function(updatedRoute) {
+                .then(function (updatedRoute) {
                   VoiceExtension
                     .findAll({
                       where: {
@@ -1014,9 +990,7 @@ exports.update = function(req, res) {
                         isApp: true
                       }
                     })
-                    .then(function(voiceExtensions) {
-                      //console.log('Extensions found');
-                      //console.log('Destroying extension rows...');
+                    .then(function (voiceExtensions) {
                       return VoiceExtension.destroy({
                           where: {
                             VoiceExtensionId: updatedRoute.id
@@ -1024,9 +998,9 @@ exports.update = function(req, res) {
                         }, {
                           transaction: t
                         })
-                        .then(function() {
+                        .then(function () {
                           voiceExtensions = _.pluck(voiceExtensions, 'dataValues');
-                          var intervalIds = _.filter(_.pluck(voiceExtensions, 'IntervalId'), function(elem) {
+                          var intervalIds = _.filter(_.pluck(voiceExtensions, 'IntervalId'), function (elem) {
                             return elem !== null;
                           });
                           Interval
@@ -1035,12 +1009,10 @@ exports.update = function(req, res) {
                                 IntervalId: intervalIds
                               }
                             })
-                            .then(function(intervals) {
-                              //console.log('Creating extension rows...');
+                            .then(function (intervals) {
                               var priority = 2;
                               var interval;
-                              voiceExtensions.forEach(function(tmpElem) {
-                                //console.log('Creating app..');
+                              voiceExtensions.forEach(function (tmpElem) {
                                 var application = _.cloneDeep(Applications[tmpElem.app]);
                                 if (!application || tmpElem.customApp) {
                                   application = [{
@@ -1055,19 +1027,16 @@ exports.update = function(req, res) {
                                     appdata: 'Custom Application End'
                                   }];
                                 }
-                                //console.log('PRIORITY');
-                                //console.log(priority);
                                 tmpElem.context = updatedRoute.context;
                                 tmpElem.exten = updatedRoute.exten;
                                 var appGroup = util.format('%s%s%s', tmpElem.context, tmpElem.exten, priority);
                                 tmpElem.interval = tmpElem.interval || '*,*,*,*';
-                                var tmpIntervals = _.filter(intervals, function(elem) {
+                                var tmpIntervals = _.filter(intervals, function (elem) {
                                   return (elem.IntervalId == tmpElem.IntervalId);
                                 });
                                 if (tmpIntervals && tmpIntervals.length > 0) {
                                   application.splice(0, 1);
-                                  tmpIntervals.forEach(function(elem, index) {
-                                    // interval = createInterval(elem);
+                                  tmpIntervals.forEach(function (elem, index) {
                                     application.unshift({
                                       app: 'GotoIfTimeFromArray',
                                       appdata: elem.interval + '?%s,${EXTEN},%s:%s,${EXTEN},%s',
@@ -1078,33 +1047,30 @@ exports.update = function(req, res) {
                                   })
                                 }
                                 priority = appCreate(application, tmpElem, appGroup, tmpIntervals || [], priority);
-                                //console.log('returned priority');
-                                //console.log(priority);
                                 VoiceExtension
                                   .bulkCreate(application)
                               });
-                              //console.log('THE END');
                               return res.sendStatus(200);
                             })
                         })
                     })
                 })
             })
-            .catch(function(err) {
+            .catch(function (err) {
               return handleError(res, err);
             });
         })
-        .catch(function(err) {
+        .catch(function (err) {
           return handleError(res, err);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
 
 // Updates an existing voice_extension in the DB.
-exports.updateApplication = function(req, res, next) {
+exports.updateApplication = function (req, res, next) {
   var interval;
   if (req.body.appdata) {
     delete req.body.appdata;
@@ -1113,18 +1079,18 @@ exports.updateApplication = function(req, res, next) {
   //console.log('Finding app row.....');
   VoiceExtension
     .findById(req.body.id)
-    .then(function(voiceExtension) {
+    .then(function (voiceExtension) {
       if (!voiceExtension) {
         return res.sendStatus(404);
       }
       delete req.body.id;
       var updated = _.merge(voiceExtension, req.body);
       //console.log('Updating app row.....');
-      return sequelize.transaction(function(t) {
+      return sequelize.transaction(function (t) {
           return updated.save({
               transaction: t
             })
-            .then(function() {
+            .then(function () {
               //console.log('Finding extension apps..');
               VoiceExtension
                 .findAll({
@@ -1133,7 +1099,7 @@ exports.updateApplication = function(req, res, next) {
                     isApp: true
                   }
                 })
-                .then(function(voiceExtensions) {
+                .then(function (voiceExtensions) {
                   //console.log('Extensions found');
                   //console.log('Destroying extension rows...');
                   return VoiceExtension.destroy({
@@ -1143,9 +1109,9 @@ exports.updateApplication = function(req, res, next) {
                     }, {
                       transaction: t
                     })
-                    .then(function() {
+                    .then(function () {
                       voiceExtensions = _.pluck(voiceExtensions, 'dataValues');
-                      var intervalIds = _.filter(_.pluck(voiceExtensions, 'IntervalId'), function(elem) {
+                      var intervalIds = _.filter(_.pluck(voiceExtensions, 'IntervalId'), function (elem) {
                         return elem !== null;
                       });
                       return Interval
@@ -1154,11 +1120,11 @@ exports.updateApplication = function(req, res, next) {
                             IntervalId: intervalIds
                           }
                         })
-                        .then(function(intervals) {
+                        .then(function (intervals) {
                           //console.log('Creating extension rows...');
                           var priority = 2;
                           var interval;
-                          voiceExtensions.forEach(function(tmpElem) {
+                          voiceExtensions.forEach(function (tmpElem) {
                             //console.log('Creating app..');
                             var application = _.cloneDeep(Applications[tmpElem.app]);
                             if (!application || tmpElem.customApp) {
@@ -1178,12 +1144,12 @@ exports.updateApplication = function(req, res, next) {
                             //console.log(priority);
                             var appGroup = util.format('%s%s%s', tmpElem.context, tmpElem.exten, priority);
                             tmpElem.interval = tmpElem.interval || '*,*,*,*';
-                            var tmpIntervals = _.filter(intervals, function(elem) {
+                            var tmpIntervals = _.filter(intervals, function (elem) {
                               return (elem.IntervalId == tmpElem.IntervalId);
                             });
                             if (tmpIntervals && tmpIntervals.length > 0) {
                               application.splice(0, 1);
-                              tmpIntervals.forEach(function(elem, index) {
+                              tmpIntervals.forEach(function (elem, index) {
                                 // interval = createInterval(elem);
                                 application.unshift({
                                   app: 'GotoIfTimeFromArray',
@@ -1206,33 +1172,33 @@ exports.updateApplication = function(req, res, next) {
                 })
             })
         })
-        .then(function(result) {
+        .then(function (result) {
           return res.status(201).send(result);
         })
-        .catch(function(err) {
+        .catch(function (err) {
           return handleError(res, err);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 
 };
 
 // Deletes a voice_extension from the DB.
-exports.destroy = function(req, res, next) {
+exports.destroy = function (req, res, next) {
   VoiceExtension
     .findById(req.params.id)
-    .then(function(voice_extension) {
+    .then(function (voice_extension) {
       if (!voice_extension) {
         return res.sendStatus(404);
       }
       if (!voice_extension.VoiceExtensionId) {
         voice_extension.destroy()
-          .then(function() {
+          .then(function () {
             return res.sendStatus(204);
           })
-          .catch(function(err) {
+          .catch(function (err) {
             return handleError(res, err);
           });
       } else {
@@ -1243,12 +1209,12 @@ exports.destroy = function(req, res, next) {
               appGroup: voice_extension.appGroup
             }
           })
-          .then(function(voice_extensions) {
+          .then(function (voice_extensions) {
             //console.log('found extensions');
             if (!voice_extensions) {
               return res.sendStatus(404);
             }
-            return sequelize.transaction(function(t) {
+            return sequelize.transaction(function (t) {
                 //console.log('trying to delete');
                 return VoiceExtension.destroy({
                     where: {
@@ -1257,7 +1223,7 @@ exports.destroy = function(req, res, next) {
                   }, {
                     transaction: t
                   })
-                  .then(function(deleted_rows) {
+                  .then(function (deleted_rows) {
                     //console.log('the length of the group is', deleted_rows);
                     // //console.log(voice_extensions);
                     return VoiceExtension
@@ -1269,7 +1235,7 @@ exports.destroy = function(req, res, next) {
                           }
                         }
                       })
-                      .then(function(voiceApplications) {
+                      .then(function (voiceApplications) {
                         return VoiceExtension
                           .destroy({
                             where: {
@@ -1281,13 +1247,13 @@ exports.destroy = function(req, res, next) {
                           }, {
                             transaction: t
                           })
-                          .then(function() {
-                            var appGroups = _.pluck(_.filter(_.pluck(voiceApplications, 'dataValues'), function(elem) {
+                          .then(function () {
+                            var appGroups = _.pluck(_.filter(_.pluck(voiceApplications, 'dataValues'), function (elem) {
                               return elem.isApp === true;
                             }), 'appGroup');
                             var priority = voice_extensions[0].priority;
-                            appGroups.forEach(function(sortedElem) {
-                              var tmpElem = _.find(voiceApplications, function(elem) {
+                            appGroups.forEach(function (sortedElem) {
+                              var tmpElem = _.find(voiceApplications, function (elem) {
                                 return (elem.appGroup == sortedElem && elem.isApp === true);
                               });
                               var application = _.cloneDeep(Applications[tmpElem.app]);
@@ -1308,12 +1274,12 @@ exports.destroy = function(req, res, next) {
                               //console.log(priority);
                               var appGroup = util.format('%s%s%s', tmpElem.context, tmpElem.exten, priority);
                               tmpElem.interval = tmpElem.interval || '*,*,*,*';
-                              var tmpIntervals = _.filter(voiceApplications, function(elem) {
+                              var tmpIntervals = _.filter(voiceApplications, function (elem) {
                                 return (elem.appGroup == sortedElem && elem.isInterval === true);
                               });
                               if (tmpIntervals && tmpIntervals.length > 0) {
                                 application.splice(0, 1);
-                                tmpIntervals.forEach(function(elem, index) {
+                                tmpIntervals.forEach(function (elem, index) {
 
                                   application.unshift({
                                     app: 'GotoIfTimeFromArray',
@@ -1334,7 +1300,7 @@ exports.destroy = function(req, res, next) {
                       })
                   })
               })
-              .then(function(result) {
+              .then(function (result) {
                 // VoiceExtension
                 //   .findAll({
                 //     where: {
@@ -1348,20 +1314,20 @@ exports.destroy = function(req, res, next) {
                 //   })
                 res.sendStatus(201);
               })
-              .catch(function(err) {
+              .catch(function (err) {
                 return next(err);
               });
           })
       }
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return next(err);
     });
 };

 // Deletes a agent from the DB.
-exports.bulkDestroy = function(req, res) {
+exports.bulkDestroy = function (req, res) {
   VoiceExtension
     .destroy({
       where: {
@@ -1369,10 +1335,10 @@ exports.bulkDestroy = function(req, res) {
       },
       individualHooks: true
     })
-    .then(function() {
+    .then(function () {
       return res.sendStatus(204);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return handleError(res, err);
     });
 };
diff --git a/server/api/xchatty/xchatty.controller.js b/server/api/xchatty/xchatty.controller.js
index 8a0fe53..17a3330 100644
--- a/server/api/xchatty/xchatty.controller.js
+++ b/server/api/xchatty/xchatty.controller.js
@@ -18,7 +18,9 @@ var config = require('../../config/environment');
 var Xchatty = require('../../models').Xchatty;
 var xchatty_components = require('../../components/xchatty');
 
+var sequelize = require('../../models').sequelize;
 var User = require('../../models').User;
+var Agent = require('../../models').User;
 var ChatRoom = require('../../models').ChatRoom;
 var ChatEnquiry = require('../../models').ChatEnquiry;
 var ChatVisitor = require('../../models').ChatVisitor;
@@ -30,23 +32,23 @@ var id = 1;
 // var ip = addr.toIPv4Address().octets.join('.');
 
 // Get list of xchattys
-exports.index = function(req, res, next) {
+exports.index = function (req, res, next) {
   Xchatty
     .findAll()
-    .then(function(xchattys) {
+    .then(function (xchattys) {
       return res.status(200).send(xchattys);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return next(err);
     });
 };
 
-exports.getJsByWebsite = function(req, res, next) {
+exports.getJsByWebsite = function (req, res, next) {
 
   // TO DO: Find the configuration of the website and replace configuration in the file
   ChatWebsite
     .findById(req.params.id)
-    .then(function(chatWebsite) {
+    .then(function (chatWebsite) {
       res.set({
         'Content-Type': 'application/javascript',
         'x-timestamp': Date.now(),
@@ -97,18 +99,18 @@ exports.getJsByWebsite = function(req, res, next) {
       res.send(js);
 
     })
-    .catch(function(err) {
+    .catch(function (err) {
       next(err);
     });
 
 };
 
-exports.getStyleByWebsite = function(req, res, next) {
+exports.getStyleByWebsite = function (req, res, next) {
 
   // TO DO: Find the configuration of the website and replace configuration in the file
   ChatWebsite
     .findById(req.params.id)
-    .then(function(chatWebsite) {
+    .then(function (chatWebsite) {
 
       res.set({
         'Content-Type': 'text/css',
@@ -130,17 +132,16 @@ exports.getStyleByWebsite = function(req, res, next) {
       css = Mustache.render(css, configCSS);
       res.send(css);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       next(err);
     });
 };
 
-exports.getAssets = function(req, res, next) {
-  res.download(path.join(config.root, 'server', 'components', 'xchatty',
-    'assets', req.query.resource));
+exports.getAssets = function (req, res, next) {
+  res.download(path.join(config.root, 'server', 'components', 'xchatty', 'assets', req.query.resource));
 };
 
-exports.getJqueryLibrary = function(req, res, next) {
+exports.getJqueryLibrary = function (req, res, next) {
 
   // TODO: Find the configuration of the website and replace configuration in the file
   res.set({
@@ -154,19 +155,20 @@ exports.getJqueryLibrary = function(req, res, next) {
 
 };
 
-exports.getStatus = function(req, res, next) {
+exports.getStatus = function (req, res, next) {
 
   if (!req.session.xchatty) {
     req.session.xchatty = {};
   }
   // Get all users (later agents) online in the interface
-  User
+  Agent
     .findAll({
       where: {
-        online: true
+        online: true,
+        role: 'agent'
       }
     })
-    .then(function(users) {
+    .then(function (users) {
 
       if (req.query.data.open_state)
         req.session.xchatty.open_state = req.query.data.open_state === 'true' ? true : false;
@@ -190,7 +192,7 @@ exports.getStatus = function(req, res, next) {
               status: 'open'
             }
           })
-          .then(function(chatRoom) {
+          .then(function (chatRoom) {
             if (chatRoom) {
               req.session.xchatty.room_id = chatRoom.id;
               jsonResponse.signed_up = true;
@@ -200,7 +202,7 @@ exports.getStatus = function(req, res, next) {
 
             res.send(req.query.callback + '(' + JSON.stringify(jsonResponse) + ')');
           })
-          .catch(function(err) {
+          .catch(function (err) {
             next(err);
           });
       } else {
@@ -208,12 +210,12 @@ exports.getStatus = function(req, res, next) {
       }
 
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return next(err);
     });
 };
 
-exports.getMessages = function(req, res, next) {
+exports.getMessages = function (req, res, next) {
 
   /*jshint multistr: true */
   var condition = {
@@ -237,7 +239,7 @@ exports.getMessages = function(req, res, next) {
 
   ChatMessage
     .findAll(condition)
-    .then(function(chatMessages) {
+    .then(function (chatMessages) {
       var json = {
         success: true,
         messages: chatMessages,
@@ -247,12 +249,12 @@ exports.getMessages = function(req, res, next) {
 
       res.send(req.query.callback + '(' + JSON.stringify(json) + ')');
     })
-    .catch(function(err) {
+    .catch(function (err) {
       next(err);
     });
 };
 
-exports.sendMessage = function(req, res, next) {
+exports.sendMessage = function (req, res, next) {
 
   /*jshint multistr: true */
   var condition = {
@@ -280,11 +282,11 @@ exports.sendMessage = function(req, res, next) {
       ChatRoomId: req.session.xchatty.room_id,
       ChatVisitorId: req.session.xchatty.visitor_id
     })
-    .then(function(chatMessage) {
+    .then(function (chatMessage) {
       console.log('chatMessage', chatMessage);
       ChatMessage
         .findAll(condition)
-        .then(function(chatMessages) {
+        .then(function (chatMessages) {
           var json = {
             errors: [],
             success: true,
@@ -294,25 +296,25 @@ exports.sendMessage = function(req, res, next) {
 
           res.send(req.query.callback + '(' + JSON.stringify(json) + ')');
         })
-        .catch(function(err) {
+        .catch(function (err) {
           next(err);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       next(err);
     });
 
 };
 
-exports.signoutCustomer = function(req, res, next) {
+exports.signoutCustomer = function (req, res, next) {
 
   ChatRoom
     .findById(req.session.xchatty.room_id)
-    .then(function(chatRoom) {
+    .then(function (chatRoom) {
       chatRoom.updateAttributes({
           status: 'close'
         })
-        .then(function(chatRoom) {
+        .then(function (chatRoom) {
           var json = {
             success: true,
             errors: []
@@ -320,27 +322,28 @@ exports.signoutCustomer = function(req, res, next) {
           req.session.xchatty = {};
           res.send(req.query.callback + '(' + JSON.stringify(json) + ')');
         })
-        .catch(function(err) {
+        .catch(function (err) {
           next(err);
         })
     })
-    .catch(function(err) {
+    .catch(function (err) {
       next(err);
     });
 };
 
-exports.signupCustomer = function(req, res, next) {
+exports.signupCustomer = function (req, res, next) {
   var ua = uaParser.setUA(req.headers['user-agent']).getResult();
   var languages = languageParser.parse(req.headers['accept-language']);
-  var addr = ipaddr.parse(req.connection.remoteAddress);
+  // var addr = ipaddr.parse(req.connection.remoteAddress);
 
-  var ipv4Addr = "151.0.175.186";
-  var geo = geoip.lookup(ipv4Addr);
+  // var ipv4Addr = "151.0.175.186";
+  // var geo = geoip.lookup(ipv4Addr);
 
   var body = {
     fullname: req.query.data.Discussion.fullname,
     email: req.query.data.Discussion.email,
-    remote_address: ipv4Addr,
+    // remote_address: addr,
+    remote_address: req.connection.remoteAddress,
     user_agent: req.headers['user-agent'],
     visitor_language: req.headers['accept-language'],
     referer: req.headers.referer,
@@ -349,17 +352,17 @@ exports.signupCustomer = function(req, res, next) {
     engine: ua.engine.name + ' ' + ua.engine.version,
     os: ua.os.name + ' ' + ua.os.version,
     device: ua.device.model ? ua.device.model + ' ' + ua.device.vendor + ' ' + ua.device.type : null,
-    country: geo.country,
-    city: geo.city,
-    region: geo.region,
-    latitude: geo.ll.length ? geo.ll[0].toString() : null,
-    longitude: geo.ll.length ? geo.ll[1].toString() : null,
+    // country: geo.country,
+    // city: geo.city,
+    // region: geo.region,
+    // latitude: geo.ll.length ? geo.ll[0].toString() : null,
+    // longitude: geo.ll.length ? geo.ll[1].toString() : null,
     ChatWebsiteId: req.query.chatWebsiteId
   };
 
-  ChatVisitor
+  return ChatVisitor
     .create(body)
-    .then(function(chatVisitor) {
+    .then(function (chatVisitor) {
 
       req.session.xchatty.fullname = chatVisitor.fullname;
       req.session.xchatty.email = chatVisitor.email;
@@ -377,21 +380,20 @@ exports.signupCustomer = function(req, res, next) {
       /*jshint multistr: true */
       res.send(req.query.callback + '(' + JSON.stringify(json) + ')');
     })
-    .catch(function(err) {
+    .catch(function (err) {
       next(err);
     });
-
 };
 
-exports.unservedCustomer = function(req, res, next) {
+exports.unservedCustomer = function (req, res, next) {
 
   ChatVisitor
     .findById(req.session.xchatty.visitor_id)
-    .then(function(chatVisitor) {
+    .then(function (chatVisitor) {
 
       chatVisitor.updateAttributes({
           status: 'unserved'
-        }).then(function() {
+        }).then(function () {
           var json = {
             success: true,
             errors: []
@@ -399,53 +401,69 @@ exports.unservedCustomer = function(req, res, next) {
           req.session.xchatty = {};
           res.send(req.query.callback + '(' + JSON.stringify(json) + ')');
         })
-        .catch(function(err) {
+        .catch(function (err) {
           next(err);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       next(err);
     });
 };
 
-exports.submitEnquiry = function(req, res, next) {
-
-  ChatVisitor
-    .create({
-      fullname: req.query.data.Enquiry.fullname,
-      email: req.query.data.Enquiry.email,
-      remote_address: req.connection.remoteAddress,
-      user_agent: req.headers['user-agent'],
-      visitor_language: req.headers['accept-language'],
-      referer: req.headers.referer,
-      origin: 'enquiry',
-      status: 'unserved'
-    })
-    .then(function(chatVisitor) {
-      ChatEnquiry
-        .create({
-          username: req.query.data.Enquiry.fullname,
-          email: chatVisitor.email,
-          text: req.query.data.Enquiry.message
-        })
-        .then(function(chatEnquiry) {
-          chatEnquiry.setChatVisitor(chatVisitor);
-          var json = {
-            success: true,
-            errors: []
-          };
-          res.send(req.query.callback + '(' + JSON.stringify(json) + ')');
-        })
-        .catch(function(err) {
-          next(err);
-        })
-    })
-    .catch(function(err) {
-      next(err);
-    })
+exports.submitEnquiry = function (req, res, next) {
+
+  var _chatVisitor;
+  var _chatEnquiry;
+
+  return sequelize.transaction().then(function (t) {
+
+    return ChatVisitor
+      .create({
+        fullname: req.query.data.Enquiry.fullname,
+        email: req.query.data.Enquiry.email,
+        remote_address: req.connection.remoteAddress,
+        user_agent: req.headers['user-agent'],
+        visitor_language: req.headers['accept-language'],
+        referer: req.headers.referer,
+        origin: 'enquiry',
+        status: 'unserved'
+      }, {
+        transaction: t
+      })
+      .then(function (chatVisitor) {
+        _chatVisitor = chatVisitor;
+        return ChatEnquiry
+          .create({
+            username: req.query.data.Enquiry.fullname,
+            email: chatVisitor.email,
+            text: req.query.data.Enquiry.message,
+            ChatWebsiteId: parseInt(req.query.data.Enquiry.websiteId, 10),
+            ChatVisitorId: _chatVisitor.id
+          }, {
+            include: [{
+              all: true,
+              include: [{
+                all: true
+              }]
+            }],
+            transaction: t
+          });
+      })
+      .then(function () {
+        t.commit();
+        res.send(req.query.callback + '(' + JSON.stringify({
+          success: true,
+          errors: []
+        }) + ')');
+      })
+      .catch(function (err) {
+        t.rollback();
+        next(err);
+      });
+  });
 };
 
-exports.getTranscript = function(req, res, next) {
+exports.getTranscript = function (req, res, next) {
   if (req.session.xchatty && req.session.xchatty.visitor_id && req.session.xchatty
     .room_id) {
     ChatMessage
@@ -454,10 +472,10 @@ exports.getTranscript = function(req, res, next) {
           ChatRoomId: req.session.xchatty.room_id
         }
       })
-      .then(function(chatMessages) {
+      .then(function (chatMessages) {
 
         var chatMessageForCSV = [];
-        chatMessages.forEach(function(chatMessage) {
+        chatMessages.forEach(function (chatMessage) {
           var chatMsg = {
             name: chatMessage.fullname,
             text: chatMessage.body.replace(/(\r\n|\n|\r)/gm, " "),
@@ -468,81 +486,81 @@ exports.getTranscript = function(req, res, next) {
         var csv_transcript = csv(chatMessageForCSV);
         res.type('text/csv').status(200).send(csv_transcript);
       })
-      .catch(function(err) {
+      .catch(function (err) {
         next(err);
       });
   }
 };
 
 // Get a single xchatty
-exports.show = function(req, res, next) {
+exports.show = function (req, res, next) {
   Xchatty
     .findById(req.params.id)
-    .then(function(xchatty) {
+    .then(function (xchatty) {
       if (!xchatty) {
         return res.sendStatus(404);
       }
       return res.send(xchatty);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return next(err);
     });
 };
 
 // Creates a new xchatty in the DB.
-exports.create = function(req, res, next) {
+exports.create = function (req, res, next) {
   Xchatty
     .create(req.body)
-    .then(function(xchatty) {
+    .then(function (xchatty) {
       return res.status(201).send(xchatty);
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return next(err);
     });
 };
 
 // Updates an existing xchatty in the DB.
-exports.update = function(req, res, next) {
+exports.update = function (req, res, next) {
   if (req.body.id) {
     delete req.body.id;
   }
   Xchatty
     .findById(req.params.id)
-    .then(function(xchatty) {
+    .then(function (xchatty) {
       if (!xchatty) {
         return res.sendStatus(404);
       }
       var updated = _.merge(xchatty, req.body);
       updated.save()
-        .then(function() {
+        .then(function () {
           return res.status(200).send(xchatty);
         })
-        .catch(function(err) {
+        .catch(function (err) {
           return next(err);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return next(err);
     });
 };
 
 // Deletes a xchatty from the DB.
-exports.destroy = function(req, res, next) {
+exports.destroy = function (req, res, next) {
   Xchatty
     .findById(req.params.id)
-    .then(function(xchatty) {
+    .then(function (xchatty) {
       if (!xchatty) {
         return res.sendStatus(404);
       }
       xchatty.destroy()
-        .then(function() {
+        .then(function () {
           return res.sendStatus(204);
         })
-        .catch(function(err) {
+        .catch(function (err) {
           return next(err);
         });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       return next(err);
     });
 };
diff --git a/server/api/xchatty/xchatty.spec.js b/server/api/xchatty/xchatty.spec.js
deleted file mode 100644
index 8ac3a5e..0000000
--- a/server/api/xchatty/xchatty.spec.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/xchatty', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/xchatty')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
diff --git a/server/app.js b/server/app.js
index 68eae14..208ae47 100644
--- a/server/app.js
+++ b/server/app.js
@@ -75,12 +75,12 @@ models
     require('./config/automations/mail')();
     require('./config/automations/fax')();
     require('./config/triggers')();
-    require('./config/imap')();
+    require('./config/imap').init();
     require('./config/smtp').init();
     require('./config/ami')(ami);
     require('./config/agi')();
     require('./config/autodialer')(ami);
-    require('./config/integration')(io, ami);
+    // require('./config/integration')(io, ami);
 
     // Start server
     server.listen(config.port, config.ip, function() {
diff --git a/server/components/xchatty/xchatty.js b/server/components/xchatty/xchatty.js
index d312091..56f4298 100644
--- a/server/components/xchatty/xchatty.js
+++ b/server/components/xchatty/xchatty.js
@@ -45,7 +45,7 @@ var xChatty = {
         "HeaderOnline": '{{HeaderOnline}}',
         "HeaderOffline": "{{HeaderOffline}}",
         "OperatorOfflineMessage": "It appears as if all operators are currently offline.",
-        "OfflineMessage": "{{OfflineMessage}}",
+        "OfflineMessage": "{{{OfflineMessage}}}",
         "OnlineMessage": '{{OnlineMessage}}',
         "UsernamePlaceholder": '{{UsernamePlaceholder}}',
         "EmailPlaceholder": '{{EmailPlaceholder}}',
@@ -238,6 +238,10 @@ var xChatty = {
         enquiryForm.addClass("xc_enquiry_sending");
         var formData = jQuery(this).serializeArray();
         formData.push({
+            name: 'data[Enquiry][websiteId]',
+            value: xChatty.config.websiteId
+        });
+        formData.push({
             name: 'data[Enquiry][current_page]',
             value: encodeURIComponent(encodeURIComponent(document.URL))
         });
@@ -245,6 +249,7 @@ var xChatty = {
         return false;
     },
     handleAjaxSubmitCall: function(formData, enquiryForm) {
+      console.log('formData', formData);
       jQuery.ajax({
           url: xChatty.config.rootPath + "submit",
           data: formData,
diff --git a/server/config/automations/mail.js b/server/config/automations/mail.js
index fc2f2b6..ea76e97 100644
--- a/server/config/automations/mail.js
+++ b/server/config/automations/mail.js
@@ -13,13 +13,11 @@ var automationTimeout;
 var activeAutomations = {};
 
 function getTimeout() {
-  Settings
+  return Settings
     .findOne()
-    .then(function(result) {
+    .then(function (result) {
       automationTimeout = result.automation_timeout;
-    })
-    .catch(function(err) {
-      // console.log(err);
+      return;
     });
 }
 
@@ -33,7 +31,7 @@ function executeAutomation(mailAutomation) {
   var subConditions = {};
   var mainOp = conditionsGroup.boolean === 'AND' ? '$and' : '$or';
   query.where[mainOp] = [];
-  conditionsGroup.rules.forEach(function(rule) {
+  conditionsGroup.rules.forEach(function (rule) {
     if (rule.operator) {
       // console.log('normal rule');
       query.where[mainOp].push(getCondition(rule));
@@ -42,7 +40,7 @@ function executeAutomation(mailAutomation) {
       var subOp = rule.group.boolean === 'AND' ? '$and' : '$or';
       var tempGroup = {};
       tempGroup[subOp] = [];
-      rule.group.rules.forEach(function(subRule) {
+      rule.group.rules.forEach(function (subRule) {
         // console.log('subgroup rule');
         tempGroup[subOp].push(getCondition(subRule));
       });
@@ -53,19 +51,19 @@ function executeAutomation(mailAutomation) {
   //
   MailRoom
     .findAll(query)
-    .then(function(res) {
-      res.forEach(function(mail) {
-        actionsGroup.rules.forEach(function(rule) {
+    .then(function (res) {
+      res.forEach(function (mail) {
+        actionsGroup.rules.forEach(function (rule) {
           switch (rule.field.value) {
-            case 'status':
-              setStatus(mail.id, rule.data);
-              break;
-            default:
+          case 'status':
+            setStatus(mail.id, rule.data);
+            break;
+          default:
           }
         });
       });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       console.log(err);
     });
 }
@@ -78,7 +76,7 @@ function setStatus(ticketId, newStatus) {
         id: ticketId
       }
     })
-    .catch(function(err) {
+    .catch(function (err) {
       console.log(err);
     });
 }
@@ -86,69 +84,69 @@ function setStatus(ticketId, newStatus) {
 function getCondition(rule) {
   var result = {};
   switch (rule.field.value) {
-    case 'status':
-      switch (rule.operator) {
-        case '=':
-          result[rule.field.value] = rule.data;
-          break;
-        case '<>':
-          result[rule.field.value] = {
-            $ne: rule.data
-          };
-          break;
-        default:
-      }
+  case 'status':
+    switch (rule.operator) {
+    case '=':
+      result[rule.field.value] = rule.data;
       break;
-    case 'createdAt':
-      var compareDate = moment().subtract(parseInt(rule.data, 10), 'hours').format("YYYY-MM-DD HH:mm:ss");
-      switch (rule.operator) {
-        case '>':
-          result[rule.field.value] = {
-            lt: compareDate
-          };
-          break;
-        case '>=':
-          result[rule.field.value] = {
-            $lte: compareDate
-          };
-          break;
-        case '<':
-          result[rule.field.value] = {
-            $gt: compareDate
-          };
-          break;
-        case '<=':
-          result[rule.field.value] = {
-            $gte: compareDate
-          };
-          break;
-        default:
-      }
+    case '<>':
+      result[rule.field.value] = {
+        $ne: rule.data
+      };
+      break;
+    default:
+    }
+    break;
+  case 'createdAt':
+    var compareDate = moment().subtract(parseInt(rule.data, 10), 'hours').format("YYYY-MM-DD HH:mm:ss");
+    switch (rule.operator) {
+    case '>':
+      result[rule.field.value] = {
+        lt: compareDate
+      };
+      break;
+    case '>=':
+      result[rule.field.value] = {
+        $lte: compareDate
+      };
+      break;
+    case '<':
+      result[rule.field.value] = {
+        $gt: compareDate
+      };
+      break;
+    case '<=':
+      result[rule.field.value] = {
+        $gte: compareDate
+      };
       break;
     default:
+    }
+    break;
+  default:
   }
   return result;
 }
 
 function createInterval(mailAutomation) {
-  activeAutomations['interval' + mailAutomation.id] = setInterval(function() {
+  activeAutomations['interval' + mailAutomation.id] = setInterval(function () {
     executeAutomation(mailAutomation);
   }, automationTimeout * 1000);
 }
 
-module.exports = function() {
+module.exports = function () {
   getTimeout();
 
-  Automation.afterCreate(function(doc, options) {
+  Automation.afterCreate(function (doc, options) {
     createInterval(doc);
   });
 
-  Automation.afterUpdate(function(doc, options) {
+  Automation.afterUpdate(function (doc, options) {
     clearInterval(activeAutomations['interval' + doc.id]);
     createInterval(doc);
   });
 
-  Automation.afterDelete(function(doc, options) {
+  Automation.afterDelete(function (doc, options) {
     clearInterval(activeAutomations['interval' + doc.id]);
   });
 
@@ -159,13 +157,13 @@ module.exports = function() {
         channel: 'mail'
       }
     })
-    .then(function(mailAutomations) {
+    .then(function (mailAutomations) {
 
-      mailAutomations.forEach(function(mailAutomation) {
+      mailAutomations.forEach(function (mailAutomation) {
         createInterval(mailAutomation);
       });
     })
-    .catch(function(err) {
+    .catch(function (err) {
       console.error(err);
     });
 };
diff --git a/server/config/environment/config.json b/server/config/environment/config.json
index b28da56..1ddcbe4 100644
--- a/server/config/environment/config.json
+++ b/server/config/environment/config.json
@@ -1,6 +1,6 @@
 {
   "development": {
-    "host": "localhost",
+    "host": "127.0.0.1",
     "port": 3306,
     "database": "xcally",
     "username": "root",
diff --git a/server/config/environment/config_history.json b/server/config/environment/config_history.json
index b28da56..1ddcbe4 100644
--- a/server/config/environment/config_history.json
+++ b/server/config/environment/config_history.json
@@ -1,6 +1,6 @@
 {
   "development": {
-    "host": "localhost",
+    "host": "127.0.0.1",
     "port": 3306,
     "database": "xcally",
     "username": "root",
diff --git a/server/config/imap/imap.js b/server/config/imap/imap.js
index 4a8d77d..a894bad 100644
--- a/server/config/imap/imap.js
+++ b/server/config/imap/imap.js
@@ -9,291 +9,543 @@ var MailMessage = require('../../models').MailMessage;
 var MailRoom = require('../../models').MailRoom;
 var Contact = require('../../models').Contact;
 var ContactEmail = require('../../models').ContactEmail;
+var sequelize = require('../../models').sequelize;
 
-function Imap(doc) {
-  console.log('New Imap Instance...');
-
-  this.imap = new ImapListener({
-    username: doc.username,
-    password: doc.password,
-    host: doc.host,
-    port: doc.port,
-    tls: doc.ssl,
-    tlsOptions: {
-      rejectUnauthorized: false
-    },
-    mailbox: doc.mailbox, // mailbox to monitor
-    searchFilter: [doc.filter], // the search filter being used after an IDLE notification has been retrieved
-    markSeen: true, // all fetched email willbe marked as seen and not fetched next time
-    fetchUnreadOnStart: true, // use it only if you want to get all unread email on lib start. Default is `false`,,
-    mailParserOptions: {
-      streamAttachments: true
-    }, // options to be passed to mailParser lib.
-    attachments: true, // download attachments as they are encountered to the project directory
-    attachmentOptions: {
-      directory: path.join(config.root, 'server', 'files', 'attachments', '/')
-    } // specify a download directory for attachments
-  });
-
-  this.imap.on("server:connected", function() {
-    console.log("[MAIL - Account #" + doc.MailAccountId + "] IMAP CONNECTED");
-    // SETUP CONNECTED STATUS
-    MailServerIn
-      .findById(doc.id)
-      .then(function(msi) {
-        msi
-          .updateAttributes({
-            state: 'CONNECTED'
-          });
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  });
-
-  this.imap.on("server:disconnected", function() {
-    console.log("[MAIL - Account #" + doc.MailAccountId + "] IMAP DISCONNECTED");
-    MailServerIn
-      .findById(doc.id)
-      .then(function(msi) {
-        msi
-          .updateAttributes({
-            state: 'DISCONNECTED'
-          });
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  });
-
-  this.imap.on("error", function(err) {
-    console.log("[MAIL - Account #" + doc.MailAccountId + "] IMAP ERROR", err);
-    MailServerIn
-      .findById(doc.id)
-      .then(function(msi) {
-        msi
-          .updateAttributes({
-            state: 'ERROR',
-            source: err.source
-          });
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  });
-
-  this.imap.on("mail", function(msg, seqno, attributes) {
-    var mMessage;
-    var mRoom;
-
-    function createMailMessage(mailRoom) {
-      mRoom = mailRoom;
-
-      return MailMessage
-        .create({
-          messageId: msg.messageId,
-          subject: msg.subject,
-          from: _.pluck(msg.from, 'address').join(';'),
-          to: msg.to ? _.pluck(msg.to, 'address').join(';') : null,
-          cc: msg.cc ? _.pluck(msg.cc, 'address').join(';') : null,
-          bcc: msg.cc ? _.pluck(msg.bcc, 'address').join(';') : null,
-          status: 'RECEIVED',
-          html: msg.html || null,
-          text: msg.text || null,
-          MailAttachments: msg.attachments || [],
-          MailRoomId: mailRoom.id,
-        });
+// Public
+module.exports = {
+  create: function (doc) {
+
+    var imap;
+
+    function onUpdate(doc) {
+      if (!doc.changed('state') && !doc.changed('source') && doc.username === imap.imap._config.user) {
+        console.log("MAIL - Account " + doc.username + " IMAP UPDATED");
+        imap.stop();
+        onSave(doc);
+      }
     }
 
-    function createFrom(mailMessage) {
-      mMessage = mailMessage;
-
-      return Contact
-        .findOrCreate({
-          where: {},
-          include: [{
-            model: ContactEmail,
-            as: 'Emails',
-            where: {
-              email: mMessage.from
-            }
-          }],
-          defaults: {
-            Emails: [{
-              email: mMessage.from
-            }]
-          }
-        });
+    function onRemove(doc) {
+      if (doc.username === imap.imap._config.user) {
+        console.log("MAIL - Account " + doc.username + " IMAP DESTROY");
+        imap.stop();
+        imap = null;
+      }
     }
 
-    function setFrom(contact, created) {
-      // CONTACT -> TO
-      var promises = [];
-      var tos = msg.to ? _.pluck(msg.to, 'address') : [];
-
-      mMessage
-        .setFrom(contact);
-
-      tos.forEach(function(email) {
-        promises.push(Contact
-          .findOrCreate({
-            where: {},
-            include: [{
-              model: ContactEmail,
-              as: 'Emails',
-              where: {
-                email: email
-              }
-            }],
-            defaults: {
-              Emails: [{
-                email: email
-              }]
-            }
-          }));
+    function onSave(doc) {
+
+      if (imap) {
+        imap.stop(doc);
+        imap = null;
+      }
+
+      imap = new ImapListener({
+        username: doc.username,
+        password: doc.password,
+        host: doc.host,
+        port: doc.port,
+        tls: doc.ssl,
+        tlsOptions: {
+          rejectUnauthorized: false
+        },
+        mailbox: doc.mailbox, // mailbox to monitor
+        searchFilter: [doc.filter], // the search filter being used after an IDLE notification has been retrieved
+        markSeen: true, // all fetched email willbe marked as seen and not fetched next time
+        fetchUnreadOnStart: true, // use it only if you want to get all unread email on lib start. Default is `false`,,
+        mailParserOptions: {
+          streamAttachments: false
+        }, // options to be passed to mailParser lib.
+        attachments: true, // download attachments as they are encountered to the project directory
+        attachmentOptions: {
+          directory: path.join(config.root, 'server', 'files', 'attachments', '/')
+        } // specify a download directory for attachments
       });
 
-      return promises;
-    }
-
-    function setTo(contacts) {
-      // CONTACTS -> CC
-      var tos = _.map(contacts, function(elm) {
-        return elm[0];
+      imap.start();
+
+      imap.on("server:connected", function () {
+        console.log("MAIL - Account " + doc.username + " IMAP CONNECTED");
+        // SETUP CONNECTED STATUS
+        return MailServerIn
+          .findById(doc.id)
+          .then(function (msi) {
+            return msi
+              .update({
+                state: 'CONNECTED'
+              });
+          })
+          .catch(function (err) {
+            console.error(err);
+          });
       });
 
-      mMessage
-        .setTo(tos);
+      imap.on("server:disconnected", function () {
+        console.log("MAIL - Account " + doc.MailAccountId + " IMAP DISCONNECTED");
+        MailServerIn
+          .findById(doc.id)
+          .then(function (msi) {
+            msi
+              .updateAttributes({
+                state: 'DISCONNECTED'
+              });
+          })
+          .catch(function (err) {
+            console.error(err);
+          });
+      });
 
-      var promises = [];
-      var ccs = msg.cc ? _.pluck(msg.cc, 'address') : [];
+      imap.on("error", function (err) {
+        console.log("MAIL - Account " + doc.MailAccountId + " IMAP ERROR", err);
+        MailServerIn
+          .findById(doc.id)
+          .then(function (msi) {
+            msi
+              .updateAttributes({
+                state: 'ERROR',
+                source: err.source
+              });
+          })
+          .catch(function (err) {
+            console.error(err);
+          });
+      });
 
-      ccs.forEach(function(email) {
-        promises.push(Contact
-          .findOrCreate({
-            where: {},
-            include: [{
-              model: ContactEmail,
-              as: 'Emails',
+      imap.on("mail", function (msg, seqno, attributes) {
+        var _mRoom;
+        var _mMessage;
+        var _mFrom, _mTo, _mCc, _mBcc;
+
+        function createMailMessage(mailRoom) {
+          _mRoom = mailRoom;
+
+          return MailMessage
+            .create({
+              messageId: msg.messageId,
+              subject: msg.subject,
+              from: _.pluck(msg.from, 'address').join(';'),
+              to: msg.to ? _.pluck(msg.to, 'address').join(';') : null,
+              cc: msg.cc ? _.pluck(msg.cc, 'address').join(';') : null,
+              bcc: msg.cc ? _.pluck(msg.bcc, 'address').join(';') : null,
+              status: 'RECEIVED',
+              html: msg.html || null,
+              text: msg.text || null,
+              MailAttachments: msg.attachments || [],
+              MailRoomId: mailRoom.id,
+            });
+        }
+
+        function createFrom(mailMessage) {
+          _mMessage = mailMessage;
+
+          return ContactEmail
+            .findOrCreate({
               where: {
-                email: email
+                email: _mMessage.from
+              },
+              defaults: {
+                email: _mMessage.from
               }
-            }],
-            defaults: {
-              Emails: [{
-                email: email
-              }]
-            }
-          }));
-      });
+            });
+        }
+
+        function createTo(mFrom, created) {
+          var promises = [];
+          var tos = _mMessage.to ? _.pluck(msg.to, 'address') : [];
+          _mFrom = mFrom;
+
+          tos.forEach(function (email) {
+            promises.push(ContactEmail
+              .findOrCreate({
+                where: {
+                  email: email
+                },
+                defaults: {
+                  email: email
+                }
+              }));
+          });
 
-      return promises;
-    }
+          return promises;
+        }
 
-    function setCc(contacts) {
-      // CONTACTS -> BCC
-      var ccs = _.map(contacts, function(elm) {
-        return elm[0];
-      });
+        function createCc(mTo) {
+          var promises = [];
+          var ccs = _mMessage.cc ? _.pluck(msg.cc, 'address') : [];
+          _mTo = _.map(mTo, function (elm) {
+            return elm[0];
+          });
 
-      mMessage
-        .setCc(ccs);
+          ccs.forEach(function (email) {
+            promises.push(ContactEmail
+              .findOrCreate({
+                where: {
+                  email: email
+                },
+                defaults: {
+                  email: email
+                }
+              }));
+          });
 
-      var promises = [];
-      var bccs = msg.bcc ? _.pluck(msg.bcc, 'address') : [];
+          return promises;
+        }
 
-      bccs.forEach(function(email) {
-        promises.push(Contact
-          .findOrCreate({
-            where: {},
-            include: [{
-              model: ContactEmail,
-              as: 'Emails',
-              where: {
-                email: email
-              }
-            }],
-            defaults: {
-              Emails: [{
-                email: email
-              }]
-            }
-          }));
-      });
+        function createBcc(mCc) {
+          var promises = [];
+          var bccs = _mMessage.bcc ? _.pluck(msg.bcc, 'address') : [];
+          _mCc = _.map(mCc, function (elm) {
+            return elm[0];
+          });
 
-      return promises;
-    }
+          bccs.forEach(function (email) {
+            promises.push(ContactEmail
+              .findOrCreate({
+                where: {
+                  email: email
+                },
+                defaults: {
+                  email: email
+                }
+              }));
+          });
 
-    function setBcc(contacts) {
-      // CONTACTS -> BCC
-      var bccs = _.map(contacts, function(elm) {
-        return elm[0];
-      });
+          return promises;
+        }
 
-      mMessage
-        .setBcc(bccs);
-    }
+        function setBcc(mBcc) {
+          _mBcc = _.map(mBcc, function (elm) {
+            return elm[0];
+          });
 
-    if (msg.inReplyTo) {
-      console.log('msg', msg);
-      return MailMessage
-        .findOne({
-          where: {
-            messageId: msg.inReplyTo[0]
-          },
-          include: [{
-            all: true
-          }]
-        })
-        .then(function(mailMessageParent) {
-          return mailMessageParent
-            .getMailRoom();
-        })
-        .then(createMailMessage)
-        .then(createFrom)
-        .spread(setFrom)
-        .all()
-        .then(setTo)
-        .all()
-        .then(setCc)
-        .all()
-        .then(setBcc)
-        .catch(function(err) {
-          console.error('err', err);
+          return;
+        }
+
+        return sequelize.transaction(function (t) {
+          if (msg.inReplyTo) {
+            console.log('msg', msg);
+            return MailMessage
+              .findOne({
+                where: {
+                  messageId: msg.inReplyTo[0]
+                },
+                include: [{
+                  all: true
+                }]
+              })
+              .then(function (mailMessageParent) {
+                return mailMessageParent
+                  .getMailRoom();
+              })
+              .then(function (mailRoom) {
+                _mRoom = mailRoom;
+
+                return MailMessage
+                  .create({
+                    messageId: msg.messageId,
+                    subject: msg.subject,
+                    from: _.pluck(msg.from, 'address').join(';'),
+                    to: msg.to ? _.pluck(msg.to, 'address').join(';') : null,
+                    cc: msg.cc ? _.pluck(msg.cc, 'address').join(';') : null,
+                    bcc: msg.cc ? _.pluck(msg.bcc, 'address').join(';') : null,
+                    status: 'RECEIVED',
+                    html: msg.html || null,
+                    text: msg.text || null,
+                    MailAttachments: msg.attachments || [],
+                    MailRoomId: mailRoom.id,
+                  }, {
+                    include: [{
+                      all: true
+                    }],
+                    transaction: t
+                  });
+              })
+              .then(function (mailMessage) {
+                _mMessage = mailMessage;
+
+                return ContactEmail
+                  .findOrCreate({
+                    where: {
+                      email: _mMessage.from
+                    },
+                    defaults: {
+                      email: _mMessage.from
+                    },
+                    transaction: t
+                  });
+              })
+              .spread(function (mFrom, created) {
+                var promises = [];
+                var tos = _mMessage.to ? _.pluck(msg.to, 'address') : [];
+                _mFrom = mFrom;
+
+                tos.forEach(function (email) {
+                  promises.push(ContactEmail
+                    .findOrCreate({
+                      where: {
+                        email: email
+                      },
+                      defaults: {
+                        email: email
+                      },
+                      transaction: t
+                    }));
+                });
+
+                return promises;
+              })
+              .all()
+              .then(function (mTo) {
+                var promises = [];
+                var ccs = _mMessage.cc ? _.pluck(msg.cc, 'address') : [];
+                _mTo = _.map(mTo, function (elm) {
+                  return elm[0];
+                });
+
+                ccs.forEach(function (email) {
+                  promises.push(ContactEmail
+                    .findOrCreate({
+                      where: {
+                        email: email
+                      },
+                      defaults: {
+                        email: email
+                      },
+                      transaction: t
+                    }));
+                });
+
+                return promises;
+              })
+              .all()
+              .then(function (mCc) {
+                var promises = [];
+                var bccs = _mMessage.bcc ? _.pluck(msg.bcc, 'address') : [];
+                _mCc = _.map(mCc, function (elm) {
+                  return elm[0];
+                });
+
+                bccs.forEach(function (email) {
+                  promises.push(ContactEmail
+                    .findOrCreate({
+                      where: {
+                        email: email
+                      },
+                      defaults: {
+                        email: email
+                      },
+                      transaction: t
+                    }));
+                });
+
+                return promises;
+              })
+              .all()
+              .then(function (mBcc) {
+                _mBcc = _.map(mBcc, function (elm) {
+                  return elm[0];
+                });
+
+                return;
+              })
+              .then(function () {
+                return _mMessage
+                  .setFrom(_mFrom, {
+                    transaction: t
+                  });
+              })
+              .then(function () {
+                return _mMessage
+                  .setTo(_mTo, {
+                    transaction: t
+                  });
+              })
+              .then(function () {
+                return _mMessage
+                  .setCc(_mCc, {
+                    transaction: t
+                  });
+              })
+              .then(function () {
+                return _mMessage
+                  .setBcc(_mBcc, {
+                    transaction: t
+                  });
+              });
+
+          } else {
+            return MailRoom
+              .create({
+                roomId: msg.messageId,
+                subject: msg.subject,
+                from: _.pluck(msg.from, 'address').join(';'),
+                MailAccountId: doc.MailAccountId
+              }, {
+                transaction: t
+              })
+              .then(function (mailRoom) {
+                _mRoom = mailRoom;
+
+                return MailMessage
+                  .create({
+                    messageId: msg.messageId,
+                    subject: msg.subject,
+                    from: _.pluck(msg.from, 'address').join(';'),
+                    to: msg.to ? _.pluck(msg.to, 'address').join(';') : null,
+                    cc: msg.cc ? _.pluck(msg.cc, 'address').join(';') : null,
+                    bcc: msg.cc ? _.pluck(msg.bcc, 'address').join(';') : null,
+                    status: 'RECEIVED',
+                    html: msg.html || null,
+                    text: msg.text || null,
+                    MailAttachments: msg.attachments || [],
+                    MailRoomId: mailRoom.id,
+                  }, {
+                    include: [{
+                      all: true
+                    }],
+                    transaction: t
+                  });
+              })
+              .then(function (mailMessage) {
+                _mMessage = mailMessage;
+
+                return ContactEmail
+                  .findOrCreate({
+                    where: {
+                      email: _mMessage.from
+                    },
+                    defaults: {
+                      email: _mMessage.from
+                    },
+                    transaction: t
+                  });
+              })
+              .spread(function (mFrom, created) {
+                var promises = [];
+                var tos = _mMessage.to ? _.pluck(msg.to, 'address') : [];
+                _mFrom = mFrom;
+
+                tos.forEach(function (email) {
+                  promises.push(ContactEmail
+                    .findOrCreate({
+                      where: {
+                        email: email
+                      },
+                      defaults: {
+                        email: email
+                      },
+                      transaction: t
+                    }));
+                });
+
+                return promises;
+              })
+              .all()
+              .then(function (mTo) {
+                var promises = [];
+                var ccs = _mMessage.cc ? _.pluck(msg.cc, 'address') : [];
+                _mTo = _.map(mTo, function (elm) {
+                  return elm[0];
+                });
+
+                ccs.forEach(function (email) {
+                  promises.push(ContactEmail
+                    .findOrCrredieate({
+                      where: {
+                        email: email
+                      },
+                      defaults: {
+                        email: email
+                      },
+                      transaction: t
+                    }));
+                });
+
+                return promises;
+              })
+              .all()
+              .then(function (mCc) {
+                var promises = [];
+                var bccs = _mMessage.bcc ? _.pluck(msg.bcc, 'address') : [];
+                _mCc = _.map(mCc, function (elm) {
+                  return elm[0];
+                });
+
+                bccs.forEach(function (email) {
+                  promises.push(ContactEmail
+                    .findOrCreate({
+                      where: {
+                        email: email
+                      },
+                      defaults: {
+                        email: email
+                      },
+                      transaction: t
+                    }));
+                });
+
+                return promises;
+              })
+              .all()
+              .then(function (mBcc) {
+                _mBcc = _.map(mBcc, function (elm) {
+                  return elm[0];
+                });
+
+                return;
+              })
+              .then(function () {
+                return _mMessage
+                  .setFrom(_mFrom, {
+                    transaction: t
+                  });
+              })
+              .then(function () {
+                return _mMessage
+                  .setTo(_mTo, {
+                    transaction: t
+                  });
+              })
+              .then(function () {
+                return _mMessage
+                  .setCc(_mCc, {
+                    transaction: t
+                  });
+              })
+              .then(function () {
+                return _mMessage
+                  .setBcc(_mBcc, {
+                    transaction: t
+                  });
+              });
+          }
+        }).then(function (result) {
+          // Transaction has been committed
+          // result is whatever the result of the promise chain returned to the transaction callback
+          console.log(result);
+        }).catch(function (err) {
+          // Transaction has been rolled back
+          // err is whatever rejected the promise chain returned to the transaction callback
+          console.error(err);
         });
+      });
 
-    } else {
-      return MailRoom
-        .create({
-          roomId: msg.messageId,
-          subject: msg.subject,
-          from: _.pluck(msg.from, 'address').join(';'),
-          MailAccountId: doc.MailAccountId
-        })
-        .then(createMailMessage)
-        .then(createFrom)
-        .spread(setFrom)
-        .all()
-        .then(setTo)
-        .all()
-        .then(setCc)
-        .all()
-        .then(setBcc)
-        .catch(function(err) {
-          console.error('err', err);
-        });
+      imap.on("attachment", function (attachment) {
+        console.log(attachment.path);
+      });
     }
-  });
-
-  this.imap.on("attachment", function(attachment) {});
-}
 
-Imap.prototype.start = function() {
-  this.imap.start();
+    onSave(doc);
+
+    MailServerIn.afterCreate(function (doc) {
+      onSave(doc);
+    });
+    // HANDLE ACCOUNT UPDATE/DELETE
+    MailServerIn.afterUpdate(function (doc) {
+      onUpdate(doc);
+    });
+    MailServerIn.afterDestroy(function (doc) {
+      onRemove(doc);
+    });
+  }
 };
-
-Imap.prototype.stop = function() {
-  this.imap.stop();
-};
-
-module.exports = Imap;
diff --git a/server/config/imap/index.js b/server/config/imap/index.js
index a79421c..93d8098 100644
--- a/server/config/imap/index.js
+++ b/server/config/imap/index.js
@@ -1,87 +1,30 @@
 'use strict';
-var _ = require('lodash');
-var Imap = require('./imap');
-var MailServerIn = require('../../models').MailServerIn;
-var MailAccount = require('../../models').MailAccount;
-
-function onSave(instances, doc) {
-  console.log("[MAIL - Account #" + doc.MailAccountId + "] IMAP CREATE");
-
-  var imap = new Imap(doc);
-  imap.start();
-
-  instances.push({
-    id: doc.id,
-    imap: imap
-  });
-}
-
-function onUpdate(instances, doc) {
-  console.log("[MAIL - Account #" + doc.MailAccountId + "] IMAP UPDATED");
-
-  var imap = _.find(instances, {
-    'id': doc.id
-  });
-  console.log(imap);
-  imap.imap.stop();
-  // imap = null;
-  // _.remove(instances, {
-  //   'id': doc.id
-  // });
-
-  imap = new Imap(doc);
-  imap.start();
 
-  // instances.push({
-  //   id: doc.id,
-  //   imap: imap
-  // });
-}
-
-function onRemove(instances, doc) {
-  console.log("[MAIL - Account #" + doc.MailAccountId + "] IMAP DESTROY");
-
-  var imap = _.find(instances, {
-    'id': doc.id
-  });
-  imap.imap.stop();
-  _.remove(instances, {
-    'id': doc.id
-  });
-}
-
-module.exports = function() {
-
-  var instances = [];
+var MailAccount = require('../../models').MailAccount;
+var MailServerIn = require('../../models').MailServerIn;
 
-  MailServerIn.afterCreate(function(doc) {
-    onSave(instances, doc);
-  });
-  MailServerIn.afterUpdate(function(doc) {
-    if (!doc.changed('state') && !doc.changed('source')) {
-      onUpdate(instances, doc);
-    }
-  });
-  MailServerIn.afterDestroy(function(doc) {
-    onRemove(instances, doc);
-  });
+module.exports = {
+  init: function () {
+    MailServerIn.afterCreate(function (doc) {
+      require('./imap').create(doc);
+    });
 
-  // Get all Mail Accounts
-  MailAccount
-    .findAll({
-      include: [{
-        all: true
-      }]
-    })
-    .then(function(mailAccounts) {
-      for (var i = 0; i < mailAccounts.length; i++) {
-        // IMAP/POP3
-        if (mailAccounts[i].MailServerIn) {
-          onSave(instances, mailAccounts[i].MailServerIn);
+    // Get all Mail Accounts
+    MailAccount
+      .findAll({
+        include: [{
+          all: true
+        }]
+      })
+      .then(function (mailAccounts) {
+        for (var i = 0; i < mailAccounts.length; i++) {
+          if (mailAccounts[i].MailServerIn) {
+            require('./imap').create(mailAccounts[i].MailServerIn);
+          }
         }
-      }
-    })
-    .catch(function(err) {
-      console.error(err);
-    });
+      })
+      .catch(function (err) {
+        console.error(err);
+      });
+  }
 };
diff --git a/server/config/kue.chat.js b/server/config/kue.chat.js
index 6b6e12d..7c62351 100644
--- a/server/config/kue.chat.js
+++ b/server/config/kue.chat.js
@@ -19,15 +19,16 @@
 
   var timeouts = {};
 
-  module.exports = function(kue) {
+  module.exports = function (kue) {
     var kueChat = kue.createQueue();
     // KUE PROCESS
-    kueChat.process('chat', 20, function(job, done) {
+    kueChat.process('chat', 20, function (job, done) {
       onProcess(job, done);
     });
-
     // REPORT MAIL HOOKS
-    ReportChat.afterUpdate(function(doc) {
+    ReportChat.afterUpdate(function (doc) {
+      var _chatRoom;
+
       if (doc.changed('agentconnectedAt')) {
         if (timeouts[doc.uniqueid]) {
           clearTimeout(timeouts[doc.uniqueid].timeout);
@@ -37,25 +38,21 @@
 
         ChatRoom
           .findById(doc.chatroomid)
-          .then(function(chatRoom) {
+          .then(function (chatRoom) {
+            _chatRoom = chatRoom;
+
             chatRoom
               .addUser(doc.agentid, {
                 individualHooks: true
-              })
-              .then(function() {
-                chatRoom
-                  .update({
-                    status: 'open'
-                  })
-                  .catch(function(err) {
-                    console.error(err);
-                  });
-              })
-              .catch(function(err) {
-                console.error(err);
               });
           })
-          .catch(function(err) {
+          .then(function () {
+            _chatRoom
+              .update({
+                status: 'open'
+              });
+          })
+          .catch(function (err) {
             console.error(err);
           });
 
@@ -71,7 +68,7 @@
             },
             individualHooks: true
           })
-          .catch(function(err) {
+          .catch(function (err) {
             console.error(err);
           });
 
@@ -88,13 +85,13 @@
             },
             individualHooks: true
           })
-          .catch(function(err) {
+          .catch(function (err) {
             console.error(err);
           });
       }
     });
     // CHAT VISITOR HOOKS
-    ChatVisitor.afterCreate(function(doc) {
+    ChatVisitor.afterCreate(function (doc) {
       onSave(kueChat, doc);
     });
   };
@@ -126,7 +123,7 @@
           }]
         }]
       })
-      .then(function(ChatWebsite) {
+      .then(function (ChatWebsite) {
         if (!ChatWebsite) {
           done(new Error('No Available ChatApplications..'));
           return;
@@ -146,8 +143,12 @@
             type: 'external',
             ChatVisitorId: session.ChatVisitorId,
             ChatWebsiteId: session.id
+          }, {
+            include: [{
+              all: true
+            }]
           })
-          .then(function(chatRoom) {
+          .then(function (chatRoom) {
 
             onReportSession({
               uniqueid: session.ChatVisitorId,
@@ -163,12 +164,12 @@
             session.ChatApplications = _.sortBy(session.ChatApplications, 'priority');
             onInvite(session, 0, 0, 0, 0, chatRoom, done);
           })
-          .catch(function(err) {
+          .catch(function (err) {
             console.error(err);
           });
         // END CREATE/ASSIGN CHAT ROOM
       })
-      .catch(function(err) {
+      .catch(function (err) {
         console.error(err);
       });
   }
@@ -212,131 +213,131 @@
         }
 
         switch (data.ChatApplications[i].ChatQueue.strategy) {
-          case 'rrmemory':
-            if (data.ChatApplications[i].ChatQueue.Users[j].online &&
-              onInterval(data.ChatApplications[i].Interval ? data.ChatApplications[i].Interval : data.ChatApplications[i].interval)) {
-              // AVAILABLE
-              timeout = (((data.ChatApplications[i].timeout - holdtime) > data.ChatApplications[i].ChatQueue.timeout) ?
-                data.ChatApplications[i].ChatQueue.timeout : (data.ChatApplications[i].timeout - holdtime));
-
-              onReport({
+        case 'rrmemory':
+          if (data.ChatApplications[i].ChatQueue.Users[j].online &&
+            onInterval(data.ChatApplications[i].Interval ? data.ChatApplications[i].Interval : data.ChatApplications[i].interval)) {
+            // AVAILABLE
+            timeout = (((data.ChatApplications[i].timeout - holdtime) > data.ChatApplications[i].ChatQueue.timeout) ?
+              data.ChatApplications[i].ChatQueue.timeout : (data.ChatApplications[i].timeout - holdtime));
+
+            onReport({
+              uniqueid: data.ChatVisitorId,
+              chatroomid: chatRoom.id,
+              visitorname: data.fullname,
+              visitoremail: data.email,
+              websitename: data.name,
+              websiteid: data.id,
+              websiteaddress: data.address,
+              sorting: count,
+              timeslot: timeout,
+              application: data.ChatApplications[i].app,
+              fullname: data.ChatApplications[i].ChatQueue.Users[j].fullname,
+              membername: data.ChatApplications[i].ChatQueue.Users[j].name,
+              agentid: data.ChatApplications[i].ChatQueue.Users[j].id,
+              chatqueuename: data.ChatApplications[i].ChatQueue.name,
+              lastevent: 'called',
+              holdtime: holdtime,
+              agentcalledAt: moment().format("YYYY-MM-DD HH:mm:ss")
+            });
+
+            console.log('queue', data.ChatApplications[i].ChatQueue.name, 'agent', data.ChatApplications[i].ChatQueue.Users[j].name, 'timeout', timeout, 'holdtime', holdtime);
+            aTimeout = setTimeout(function () {
+              onReportUpdate({
+                uniqueid: data.ChatVisitorId,
+                count: count,
+                reason: 'timeout',
+                lastevent: 'timeout',
+                agentringnoanswerAt: moment().format("YYYY-MM-DD HH:mm:ss")
+              });
+
+              holdtime += timeout;
+              onInvite(data, i, ++j, holdtime, ++count, chatRoom, done);
+              return;
+            }, timeout * 1000);
+
+            if (!timeouts[data.ChatVisitorId]) {
+              timeouts[data.ChatVisitorId] = {};
+            }
+
+            timeouts[data.ChatVisitorId].timeout = aTimeout;
+            timeouts[data.ChatVisitorId].done = done;
+
+          } else {
+            onInvite(data, i, ++j, holdtime, count, chatRoom, done);
+            return;
+          }
+
+          break;
+        case 'beepall':
+
+          timeout = (((data.ChatApplications[i].timeout - holdtime) > data.ChatApplications[i].ChatQueue.timeout) ?
+            data.ChatApplications[i].ChatQueue.timeout : (data.ChatApplications[i].timeout - holdtime));
+
+          var users = [];
+          data.ChatApplications[i].ChatQueue.Users.forEach(function (user) {
+            if (user.online) {
+              users.push({
                 uniqueid: data.ChatVisitorId,
                 chatroomid: chatRoom.id,
-                visitorname: data.fullname,
-                visitoremail: data.email,
-                websitename: data.name,
-                websiteid: data.id,
-                websiteaddress: data.address,
                 sorting: count,
+                subject: data.subject,
                 timeslot: timeout,
+                from: data.from,
+                attachment: data.attachment,
+                accountname: data.name,
+                accountaddress: data.address,
                 application: data.ChatApplications[i].app,
-                fullname: data.ChatApplications[i].ChatQueue.Users[j].fullname,
-                membername: data.ChatApplications[i].ChatQueue.Users[j].name,
-                agentid: data.ChatApplications[i].ChatQueue.Users[j].id,
+                fullname: user.fullname,
+                membername: user.name,
+                agentid: user.id,
                 chatqueuename: data.ChatApplications[i].ChatQueue.name,
                 lastevent: 'called',
                 holdtime: holdtime,
-                agentcalledAt: moment().format("YYYY-MM-DD HH:mm:ss")
+                agentcalledAt: moment().format("YYYY-MM-DD HH:mm:ss"),
+
+                visitorname: data.fullname,
+                visitoremail: data.email,
+                websitename: data.name,
+                websiteid: data.id,
+                websiteaddress: data.address,
               });
+            }
+          });
 
-              console.log('queue', data.ChatApplications[i].ChatQueue.name, 'agent', data.ChatApplications[i].ChatQueue.Users[j].name, 'timeout', timeout, 'holdtime', holdtime);
-              aTimeout = setTimeout(function() {
-                onReportUpdate({
-                  uniqueid: data.ChatVisitorId,
-                  count: count,
-                  reason: 'timeout',
-                  lastevent: 'timeout',
-                  agentringnoanswerAt: moment().format("YYYY-MM-DD HH:mm:ss")
-                });
-
-                holdtime += timeout;
-                onInvite(data, i, ++j, holdtime, ++count, chatRoom, done);
-                return;
-              }, timeout * 1000);
-
-              if (!timeouts[data.ChatVisitorId]) {
-                timeouts[data.ChatVisitorId] = {};
-              }
-
-              timeouts[data.ChatVisitorId].timeout = aTimeout;
-              timeouts[data.ChatVisitorId].done = done;
-
-            } else {
-              onInvite(data, i, ++j, holdtime, count, chatRoom, done);
+          if (users.length && onInterval(data.ChatApplications[i].Interval ? data.ChatApplications[i].Interval : data.ChatApplications[i].interval)) {
+            onReport(users, true);
+            aTimeout = setTimeout(function () {
+              console.log('count', count);
+              onReportUpdate({
+                uniqueid: data.ChatVisitorId,
+                count: count,
+                reason: 'timeout',
+                lastevent: 'timeout',
+                agentringnoanswerAt: moment().format("YYYY-MM-DD HH:mm:ss")
+              });
+              holdtime += timeout;
+              j += data.ChatApplications[i].ChatQueue.Users.length;
+              onInvite(data, i, j, holdtime, ++count, chatRoom, done);
               return;
+            }, timeout * 1000);
+
+            if (!timeouts[data.ChatVisitorId]) {
+              timeouts[data.ChatVisitorId] = {};
             }
 
-            break;
-          case 'beepall':
+            timeouts[data.ChatVisitorId].timeout = aTimeout;
+            timeouts[data.ChatVisitorId].done = done;
 
-            timeout = (((data.ChatApplications[i].timeout - holdtime) > data.ChatApplications[i].ChatQueue.timeout) ?
-              data.ChatApplications[i].ChatQueue.timeout : (data.ChatApplications[i].timeout - holdtime));
-
-            var users = [];
-            data.ChatApplications[i].ChatQueue.Users.forEach(function(user) {
-              if (user.online) {
-                users.push({
-                  uniqueid: data.ChatVisitorId,
-                  chatroomid: chatRoom.id,
-                  sorting: count,
-                  subject: data.subject,
-                  timeslot: timeout,
-                  from: data.from,
-                  attachment: data.attachment,
-                  accountname: data.name,
-                  accountaddress: data.address,
-                  application: data.ChatApplications[i].app,
-                  fullname: user.fullname,
-                  membername: user.name,
-                  agentid: user.id,
-                  chatqueuename: data.ChatApplications[i].ChatQueue.name,
-                  lastevent: 'called',
-                  holdtime: holdtime,
-                  agentcalledAt: moment().format("YYYY-MM-DD HH:mm:ss"),
-
-                  visitorname: data.fullname,
-                  visitoremail: data.email,
-                  websitename: data.name,
-                  websiteid: data.id,
-                  websiteaddress: data.address,
-                });
-              }
-            });
+          } else {
+            console.log('queue', data.ChatApplications[i].ChatQueue.name, 'timeout', timeout, 'holdtime', holdtime);
 
-            if (users.length && onInterval(data.ChatApplications[i].Interval ? data.ChatApplications[i].Interval : data.ChatApplications[i].interval)) {
-              onReport(users, true);
-              aTimeout = setTimeout(function() {
-                console.log('count', count);
-                onReportUpdate({
-                  uniqueid: data.ChatVisitorId,
-                  count: count,
-                  reason: 'timeout',
-                  lastevent: 'timeout',
-                  agentringnoanswerAt: moment().format("YYYY-MM-DD HH:mm:ss")
-                });
-                holdtime += timeout;
-                j += data.ChatApplications[i].ChatQueue.Users.length;
-                onInvite(data, i, j, holdtime, ++count, chatRoom, done);
-                return;
-              }, timeout * 1000);
-
-              if (!timeouts[data.ChatVisitorId]) {
-                timeouts[data.ChatVisitorId] = {};
-              }
-
-              timeouts[data.ChatVisitorId].timeout = aTimeout;
-              timeouts[data.ChatVisitorId].done = done;
-
-            } else {
-              console.log('queue', data.ChatApplications[i].ChatQueue.name, 'timeout', timeout, 'holdtime', holdtime);
-
-              onInvite(data, ++i, 0, 0, count, chatRoom, done);
-              return;
-            }
+            onInvite(data, ++i, 0, 0, count, chatRoom, done);
+            return;
+          }
 
-            break;
-          default:
-            console.error('Unknown strategy');
+          break;
+        default:
+          console.error('Unknown strategy');
         }
       } else {
         onInvite(data, ++i, 0, 0, count, chatRoom, done);
@@ -374,7 +375,7 @@
 
         console.log('agent', data.ChatApplications[i].User.name, 'timeout', timeout, 'holdtime', holdtime);
 
-        aTimeout = setTimeout(function() {
+        aTimeout = setTimeout(function () {
           onReportUpdate({
             uniqueid: data.ChatVisitorId,
             count: count,
@@ -406,13 +407,13 @@
         .bulkCreate(report, {
           individualHooks: true
         })
-        .catch(function(err) {
+        .catch(function (err) {
           console.error(err);
         });
     } else {
       ReportChat
         .create(report)
-        .catch(function(err) {
+        .catch(function (err) {
           console.error(err);
         });
     }
@@ -427,13 +428,13 @@
         },
         defaults: report
       })
-      .spread(function(ReportChatSession, created) {
+      .spread(function (ReportChatSession, created) {
         if (!created) {
           ReportChatSession
             .update(report, {
               individualHooks: true
             })
-            .catch(function(err) {
+            .catch(function (err) {
               console.error(err);
             });
         }
@@ -449,7 +450,7 @@
         },
         individualHooks: true
       })
-      .catch(function(err) {
+      .catch(function (err) {
         console.error(err);
       });
   }
diff --git a/server/config/smtp/index.js b/server/config/smtp/index.js
index 24b5000..e5bf8e2 100644
--- a/server/config/smtp/index.js
+++ b/server/config/smtp/index.js
@@ -1,86 +1,24 @@
 'use strict';
 
 var _ = require('lodash');
-var Smtp = require('./smtp');
-
 var MailServerOut = require('../../models').MailServerOut;
-var MailAccount = require('../../models').MailAccount;
-var MailMessage = require('../../models').MailMessage;
-
-function onSave(instances, doc) {
-  console.log("[MAIL - Account #" + doc.MailAccountId + "] SMTP CREATE");
-
-  var smtp = new Smtp(doc);
-  instances.push({
-    user: smtp.smtp.transporter.options.auth.user,
-    smtp: smtp
-  });
-}
-
-function onUpdate(instances, doc) {
-  console.log("[MAIL - Account #" + doc.MailAccountId + "] SMTP UPDATE");
 
-  var smtp = _.find(instances, {
-    user: doc.username
-  });
-  if (smtp) {
-    smtp.smtp = new Smtp(doc);
-  }
-}
-
-function onRemove(instances, doc) {
-  console.log("[MAIL - Account #" + doc.MailAccountId + "] SMTP DESTROY");
+module.exports = {
+  init: function () {
 
-  _.remove(instances, {
-    'id': doc.id
-  });
-}
-
-var smtp = {
-  instances: []
-};
-
-smtp.init = function() {
+    MailServerOut.afterCreate(function (doc) {
+      require('./smtp').create(doc);
+    });
 
-  MailMessage.afterCreate(function(doc) {
-    if (doc.status === 'SENDING') {
-      var smtp = _.find(smtp.instances, {
-        user: doc.from
+    return MailServerOut
+      .findAll()
+      .then(function (data) {
+        data.forEach(function (elm) {
+          require('./smtp').create(elm);
+        });
+      })
+      .catch(function (err) {
+        console.error(err);
       });
-      if (smtp) {
-        smtp.smtp.send(doc);
-      }
-    }
-  });
-
-  MailServerOut.afterCreate(function(doc) {
-    onSave(smtp.instances, doc);
-  });
-  MailServerOut.afterUpdate(function(doc) {
-    onUpdate(smtp.instances, doc);
-  });
-  MailServerOut.afterDestroy(function(doc) {
-    onRemove(smtp.instances, doc);
-  });
-
-  // Get all Mail Accounts
-  MailAccount
-    .findAll({
-      include: [{
-        all: true
-      }]
-    })
-    .then(function(mailAccounts) {
-      for (var i = 0; i < mailAccounts.length; i++) {
-        // SMTP
-        if (mailAccounts[i].MailServerOut) {
-          onSave(smtp.instances, mailAccounts[i].MailServerOut);
-        }
-      }
-    })
-    .catch(function(err) {
-      console.error(err);
-    });
+  }
 };
-
-module.exports = smtp;
diff --git a/server/config/smtp/smtp.js b/server/config/smtp/smtp.js
index e2eaa29..422a01b 100644
--- a/server/config/smtp/smtp.js
+++ b/server/config/smtp/smtp.js
@@ -4,414 +4,425 @@ var _ = require('lodash');
 var nodemailer = require('nodemailer');
 var smtpTransport = require('nodemailer-smtp-transport');
 
+var Contact = require('../../models').Contact;
 var MailRoom = require('../../models').MailRoom;
 var MailMessage = require('../../models').MailMessage;
 var ContactEmail = require('../../models').ContactEmail;
-var Contact = require('../../models').Contact;
-
-function Smtp(doc) {
-  console.log('New Smtp Instance...');
-  this.doc = doc;
-  this.smtp = nodemailer.createTransport(smtpTransport({
-    host: doc.host,
-    port: doc.port,
-    secure: doc.ssl,
-    debug: true,
-    auth: {
-      user: doc.username,
-      pass: doc.password
+var MailServerOut = require('../../models').MailServerOut;
+
+module.exports = {
+  create: function (doc) {
+
+    var _smtp;
+    var _doc;
+
+    function onSave(doc) {
+      console.log("MAIL - Account " + doc.username + " SMTP CREATE");
+      _doc = doc;
+      _smtp = nodemailer.createTransport(smtpTransport({
+        host: doc.host,
+        port: doc.port,
+        secure: doc.ssl,
+        debug: true,
+        auth: {
+          user: doc.username,
+          pass: doc.password
+        }
+      }));
     }
-  }));
-}
 
-Smtp.prototype.send = function(mailMessage) {
-  var that = this;
-  var mMessage = mailMessage;
-  var mRoom;
+    function onUpdate(doc) {
+      if (_smtp.transporter.options.auth.user === doc.username) {
+        console.log("MAIL - Account " + doc.username + " SMTP UPDATE");
+        _smtp = null;
+        _smtp = nodemailer.createTransport(smtpTransport({
+          host: doc.host,
+          port: doc.port,
+          secure: doc.ssl,
+          debug: true,
+          auth: {
+            user: doc.username,
+            pass: doc.password
+          }
+        }));
+      }
+    }
 
-  if (mMessage.inReplyTo) {
-    return MailMessage
-      .findOne({
-        where: {
-          messageId: mMessage.inReplyTo
-        }
-      })
-      .then(function(mailMessageParent) {
-        return mailMessageParent
-          .getMailRoom();
-      })
-      .then(function(mailRoom) {
-        mRoom = mailRoom;
+    function onRemove(doc) {
+      if (_smtp.transporter.options.auth.user === doc.username) {
+        console.log("[MAIL - Account " + doc.username + " SMTP DESTROY");
+        _smtp = null;
+      }
+    }
 
-        return mailRoom
-          .addMailMessage(mMessage);
-      })
-      .then(function() {
+    function onSend(mailMessage, options) {
+      if (mailMessage.changed('status') && mailMessage.status === 'SENDING' && _smtp.transporter.options.auth.user === mailMessage.from) {
+        console.log('onSend', mailMessage.from);
+        var _mRoom;
+        var _mMessage = mailMessage;
+        var _mFrom, _mTo, _mCc, _mBcc;
 
-        return Contact
-          .findOrCreate({
-            where: {},
-            include: [{
-              model: ContactEmail,
-              as: 'Emails',
+        if (_mMessage.inReplyTo) {
+          return MailMessage
+            .findOne({
               where: {
-                email: mMessage.from
+                messageId: _mMessage.inReplyTo
               }
-            }],
-            defaults: {
-              Emails: [{
-                email: mMessage.from
-              }]
-            }
-          });
-      })
-      .spread(function(contact, created) {
-        // CONTACT -> FROM
-        var promises = [];
-        var tos = mMessage.to ? mMessage.to.split(';') : [];
-
-        mMessage
-          .setFrom(contact);
-
-        tos.forEach(function(email) {
-          promises.push(Contact
-            .findOrCreate({
-              where: {},
-              include: [{
-                model: ContactEmail,
-                as: 'Emails',
-                where: {
-                  email: email
-                }
-              }],
-              defaults: {
-                Emails: [{
-                  email: email
-                }]
-              }
-            }));
-        });
-
-        return promises;
-      })
-      .all()
-      .then(function(contacts) {
-        // CONTACTS -> TO
-        var tos = _.map(contacts, function(elm) {
-          return elm[0];
-        });
-
-        mMessage
-          .setTo(tos);
+            })
+            .then(function (mailMessageParent) {
+              return mailMessageParent
+                .getMailRoom();
+            })
+            .then(function (mailRoom) {
+              _mRoom = mailRoom;
+              return mailRoom
+                .addMailMessage(_mMessage, {
+                  transaction: options ? options.transaction : null
+                });
+            })
+            .then(function () {
+              return ContactEmail
+                .findOrCreate({
+                  where: {
+                    email: _mMessage.from
+                  },
+                  defaults: {
+                    email: _mMessage.from
+                  },
+                  transaction: options ? options.transaction : null
+                });
+            })
+            .spread(function (mFrom, created) {
+              var promises = [];
+              var tos = _mMessage.to ? _mMessage.to.split(';') : [];
+              _mFrom = mFrom;
+
+              tos.forEach(function (email) {
+                promises.push(ContactEmail
+                  .findOrCreate({
+                    where: {
+                      email: email
+                    },
+                    defaults: {
+                      email: email
+                    },
+                    transaction: options ? options.transaction : null
+                  }));
+              });
 
-        var promises = [];
-        var ccs = mMessage.cc ? mMessage.cc.split(';') : [];
+              return promises;
+            })
+            .all()
+            .then(function (mTo) {
+              var promises = [];
+              var ccs = _mMessage.cc ? _mMessage.cc.split(';') : [];
+              _mTo = _.map(mTo, function (elm) {
+                return elm[0];
+              });
 
-        ccs.forEach(function(email) {
-          promises.push(Contact
-            .findOrCreate({
-              where: {},
-              include: [{
-                model: ContactEmail,
-                as: 'Emails',
-                where: {
-                  email: email
-                }
-              }],
-              defaults: {
-                Emails: [{
-                  email: email
-                }]
-              }
-            }));
-        });
+              ccs.forEach(function (email) {
+                promises.push(ContactEmail
+                  .findOrCreate({
+                    where: {
+                      email: email
+                    },
+                    defaults: {
+                      email: email
+                    },
+                    transaction: options ? options.transaction : null
+                  }));
+              });
 
-        return promises;
-      })
-      .all()
-      .then(function(contacts) {
-        // CONTACTS -> CC
-        var ccs = _.map(contacts, function(elm) {
-          return elm[0];
-        });
+              return promises;
+            })
+            .all()
+            .then(function (mCc) {
+              var promises = [];
+              var bccs = _mMessage.bcc ? _mMessage.bcc.split(';') : [];
+              _mCc = _.map(mCc, function (elm) {
+                return elm[0];
+              });
 
-        mMessage
-          .setCc(ccs);
+              bccs.forEach(function (email) {
+                promises.push(ContactEmail
+                  .findOrCreate({
+                    where: {
+                      email: email
+                    },
+                    defaults: {
+                      email: email
+                    },
+                    transaction: options ? options.transaction : null
+                  }));
+              });
 
-        var promises = [];
-        var bccs = mMessage.bcc ? mMessage.to.split(';') : [];
+              return promises;
+            })
+            .all()
+            .then(function (mBcc) {
+              _mBcc = _.map(mBcc, function (elm) {
+                return elm[0];
+              });
 
-        bccs.forEach(function(email) {
-          promises.push(Contact
-            .findOrCreate({
-              where: {},
-              include: [{
-                model: ContactEmail,
-                as: 'Emails',
-                where: {
-                  email: email
+              return;
+            })
+            .then(function () {
+              return _mMessage
+                .setFrom(_mFrom, {
+                  transaction: options ? options.transaction : null
+                });
+            })
+            .then(function () {
+              return _mMessage
+                .setTo(_mTo, {
+                  transaction: options ? options.transaction : null
+                });
+            })
+            .then(function () {
+              return _mMessage
+                .setCc(_mCc, {
+                  transaction: options ? options.transaction : null
+                });
+            })
+            .then(function () {
+              return _mMessage
+                .setBcc(_mBcc, {
+                  transaction: options ? options.transaction : null
+                });
+            })
+            .then(function () {
+              var mail = {
+                status: _mMessage.status,
+                from: _mMessage.from,
+                to: _mMessage.to,
+                cc: _mMessage.cc,
+                subject: _mMessage.subject,
+                html: _mMessage.html,
+                text: _mMessage.text,
+                headers: {
+                  'X-Laziness-level': 1000
                 }
-              }],
-              defaults: {
-                Emails: [{
-                  email: email
-                }]
+              };
+
+              if (_mMessage.MailAttachments) {
+                mail.attachments = _.map(_mMessage.MailAttachments, function (elm) {
+                  return {
+                    path: elm.path
+                  }
+                });
               }
-            }));
-        });
-
-        return promises;
-      })
-      .all()
-      .then(function(contacts) {
-        // CONTACTS -> BCC
-        var bcs = _.map(contacts, function(elm) {
-          return elm[0];
-        });
-
-        mMessage
-          .setBcc(bcs);
-      })
-      .then(function() {
-        var options = {
-          status: mMessage.status,
-          from: mMessage.from,
-          to: mMessage.to,
-          cc: mMessage.cc,
-          subject: mMessage.subject,
-          html: mMessage.html,
-          text: mMessage.text,
-          headers: {
-            'X-Laziness-level': 1000
-          }
-        };
-
-        if (mMessage.MailAttachments) {
-          options.attachments = _.map(mMessage.MailAttachments, function(elm) {
-            return {
-              path: elm.path
-            }
-          });
-        }
 
-        that.smtp.sendMail(options, function(error, response) {
-          if (error) {
-            console.error('error', error);
-            return mMessage
-              .update({
-                status: 'FAILED'
-              })
-              .catch(function(err) {
-                console.error(err);
-              });
-          } else {
-            return mMessage
-              .update({
-                messageId: response.messageId,
-                status: 'SENT'
-              })
-              .catch(function(err) {
-                console.error(err);
+              return new Promise(function (resolve, reject) {
+                _smtp.sendMail(mail, function (err, info) {
+                  if (err) {
+                    return reject(err);
+                  } else {
+                    resolve(info);
+                  }
+                });
               });
-          }
-        });
-      })
-      .catch(function(err) {
-        console.error('err', err);
-      });
-  } else {
-    return MailRoom
-      .findOrCreate({
-        where: {
-          id: mMessage.MailRoomId
-        },
-        defaults: {
-          subject: mMessage.subject,
-          from: mMessage.from,
-          status: 'OPEN',
-          MailAccountId: that.doc.MailAccountId
-        }
-      })
-      .spread(function(mailRoom) {
-        mRoom = mailRoom;
-
-        return mailRoom
-          .addMailMessage(mMessage);
-      })
-      .then(function() {
-
-        return Contact
-          .findOrCreate({
-            where: {},
-            include: [{
-              model: ContactEmail,
-              as: 'Emails',
-              where: {
-                email: mMessage.from
-              }
-            }],
-            defaults: {
-              Emails: [{
-                email: mMessage.from
-              }]
-            }
-          });
-      })
-      .spread(function(contact, created) {
-        // CONTACT -> FROM
-        var promises = [];
-        var tos = mMessage.to ? mMessage.to.split(';') : [];
-
-        mMessage
-          .setFrom(contact);
-
-        tos.forEach(function(email) {
-          promises.push(Contact
+            })
+            .then(function (info) {
+              return _mMessage
+                .update({
+                  messageId: info.messageId,
+                  status: 'SENT'
+                }, {
+                  transaction: options ? options.transaction : null
+                });
+            });
+        } else {
+          return MailRoom
             .findOrCreate({
-              where: {},
-              include: [{
-                model: ContactEmail,
-                as: 'Emails',
-                where: {
-                  email: email
-                }
-              }],
+              where: {
+                id: _mMessage.MailRoomId
+              },
               defaults: {
-                Emails: [{
-                  email: email
-                }]
-              }
-            }));
-        });
-
-        return promises;
-      })
-      .all()
-      .then(function(contacts) {
-        // CONTACTS -> TO
-        var tos = _.map(contacts, function(elm) {
-          return elm[0];
-        });
-
-        mMessage
-          .setTo(tos);
+                subject: _mMessage.subject,
+                from: _mMessage.from,
+                status: 'OPEN',
+                MailAccountId: _doc.MailAccountId
+              },
+              transaction: options ? options.transaction : null
+            })
+            .spread(function (mailRoom) {
+              _mRoom = mailRoom;
+              return mailRoom
+                .addMailMessage(_mMessage, {
+                  transaction: options ? options.transaction : null
+                });
+            })
+            .then(function () {
+              return ContactEmail
+                .findOrCreate({
+                  where: {
+                    email: _mMessage.from
+                  },
+                  defaults: {
+                    email: _mMessage.from,
+                  },
+                  transaction: options ? options.transaction : null
+                });
+            })
+            .spread(function (mFrom) {
+              var promises = [];
+              var tos = _mMessage.to ? _mMessage.to.split(';') : [];
+              _mFrom = mFrom;
+
+              tos.forEach(function (email) {
+                promises.push(ContactEmail
+                  .findOrCreate({
+                    where: {
+                      email: email
+                    },
+                    defaults: {
+                      email: email
+                    },
+                    transaction: options ? options.transaction : null
+                  }));
+              });
 
-        var promises = [];
-        var ccs = mMessage.cc ? mMessage.cc.split(';') : [];
+              return promises;
+            })
+            .all()
+            .then(function (mTo) {
+              var promises = [];
+              var ccs = _mMessage.cc ? _mMessage.cc.split(';') : [];
+              _mTo = _.map(mTo, function (elm) {
+                return elm[0];
+              });
 
-        ccs.forEach(function(email) {
-          promises.push(Contact
-            .findOrCreate({
-              where: {},
-              include: [{
-                model: ContactEmail,
-                as: 'Emails',
-                where: {
-                  email: email
-                }
-              }],
-              defaults: {
-                Emails: [{
-                  email: email
-                }]
-              }
-            }));
-        });
+              ccs.forEach(function (email) {
+                promises.push(ContactEmail
+                  .findOrCreate({
+                    where: {
+                      email: email
+                    },
+                    defaults: {
+                      email: email
+                    },
+                    transaction: options ? options.transaction : null
+                  }));
+              });
 
-        return promises;
-      })
-      .all()
-      .then(function(contacts) {
-        // CONTACTS -> CC
-        var ccs = _.map(contacts, function(elm) {
-          return elm[0];
-        });
+              return promises;
+            })
+            .all()
+            .then(function (mCc) {
+              var promises = [];
+              var bccs = _mMessage.bcc ? _mMessage.bcc.split(';') : [];
+              _mCc = _.map(mCc, function (elm) {
+                return elm[0];
+              });
 
-        mMessage
-          .setCc(ccs);
+              bccs.forEach(function (email) {
+                promises.push(ContactEmail
+                  .findOrCreate({
+                    where: {
+                      email: email
+                    },
+                    defaults: {
+                      email: email
+                    },
+                    transaction: options ? options.transaction : null
+                  }));
+              });
 
-        var promises = [];
-        var bccs = mMessage.bcc ? mMessage.to.split(';') : [];
+              return promises;
+            })
+            .all()
+            .then(function (mBcc) {
+              _mBcc = _.map(mBcc, function (elm) {
+                return elm[0];
+              });
 
-        bccs.forEach(function(email) {
-          promises.push(Contact
-            .findOrCreate({
-              where: {},
-              include: [{
-                model: ContactEmail,
-                as: 'Emails',
-                where: {
-                  email: email
+              return;
+            })
+            .then(function () {
+              return _mMessage
+                .setFrom(_mFrom, {
+                  transaction: options ? options.transaction : null
+                });
+            })
+            .then(function () {
+              return _mMessage
+                .setTo(_mTo, {
+                  transaction: options ? options.transaction : null
+                });
+            })
+            .then(function () {
+              return _mMessage
+                .setCc(_mCc, {
+                  transaction: options ? options.transaction : null
+                });
+            })
+            .then(function () {
+              return _mMessage
+                .setBcc(_mBcc, {
+                  transaction: options ? options.transaction : null
+                });
+            })
+            .then(function () {
+              var mail = {
+                status: _mMessage.status,
+                from: _mMessage.from,
+                to: _mMessage.to,
+                cc: _mMessage.cc,
+                subject: _mMessage.subject,
+                html: _mMessage.html,
+                text: _mMessage.text,
+                headers: {
+                  'X-Laziness-level': 1000
                 }
-              }],
-              defaults: {
-                Emails: [{
-                  email: email
-                }]
+              };
+
+              if (_mMessage.MailAttachments) {
+                mail.attachments = _.map(_mMessage.MailAttachments, function (elm) {
+                  return {
+                    path: elm.path
+                  }
+                });
               }
-            }));
-        });
-
-        return promises;
-      })
-      .all()
-      .then(function(contacts) {
-        // CONTACTS -> BCC
-        var bcs = _.map(contacts, function(elm) {
-          return elm[0];
-        });
 
-        mMessage
-          .setBcc(bcs);
-      })
-      .then(function() {
-        var options = {
-          status: mMessage.status,
-          from: mMessage.from,
-          to: mMessage.to,
-          cc: mMessage.cc,
-          subject: mMessage.subject,
-          html: mMessage.html,
-          text: mMessage.text,
-          headers: {
-            'X-Laziness-level': 1000
-          }
-        };
-
-        if (mMessage.MailAttachments) {
-          options.attachments = _.map(mMessage.MailAttachments, function(elm) {
-            return {
-              path: elm.path
-            }
-          });
+              return new Promise(function (resolve, reject) {
+                _smtp.sendMail(mail, function (err, info) {
+                  if (err) {
+                    return reject(err);
+                  } else {
+                    resolve(info);
+                  }
+                });
+              });
+            })
+            .then(function (info) {
+              return _mMessage
+                .update({
+                  messageId: info.messageId,
+                  status: 'SENT'
+                }, {
+                  transaction: options ? options.transaction : null
+                });
+            });
         }
+      }
+    }
 
-        that.smtp.sendMail(options, function(error, response) {
-          if (error) {
-            console.error('error', error);
-            return mMessage
-              .update({
-                status: 'FAILED'
-              })
-              .catch(function(err) {
-                console.error(err);
-              });
-          } else {
-            return mMessage
-              .update({
-                messageId: response.messageId,
-                status: 'SENT'
-              })
-              .catch(function(err) {
-                console.error(err);
-              });
-          }
-        });
-      })
-      .catch(function(err) {
-        console.error('err', err);
-      });
+    onSave(doc);
+
+    // HANDLE ACCOUNT UPDATE/DELETE
+    MailServerOut.afterUpdate(function (doc) {
+      onUpdate(doc);
+    });
+    MailServerOut.afterDestroy(function (doc) {
+      onRemove(doc);
+    });
+    // HANDLE SEND MAIL
+    MailMessage.afterCreate(function (doc, options) {
+      return onSend(doc, options);
+    });
+    // HANDLE SEND MAIL
+    // MailMessage.afterUpdate(function (doc) {
+    //   // onSend(doc);
+    // });
   }
 };
-
-module.exports = Smtp;
diff --git a/server/config/socketio.js b/server/config/socketio.js
index d600be7..0d12443 100644
--- a/server/config/socketio.js
+++ b/server/config/socketio.js
@@ -8,151 +8,151 @@ var moment = require('moment');
 var config = require('./environment');
 var User = require('../models').User;
 
-// When the user disconnects.. perform this
 function onDisconnect(socket) {
   if (socket.userId) {
-    User
+    return User
       .findById(socket.userId)
       .then(function(user) {
         if (user) {
-          user
+          return user
             .updateAttributes({
-              online: false,
-            })
-            .then(function(user) {
-              console.log('socket: user offline', user.name);
-              return;
-            })
-            .catch(function(err) {
-              console.log(err);
-              return;
+              online: false
             });
         } else {
-          console.log('socket: anyone users found');
-          return;
+          throw new Error('socket: anyone users found');
         }
       })
+      .then(function(user) {
+        console.log('socket: user offline', user.name);
+      })
       .catch(function(err) {
-        console.log(err);
-        return;
+        console.error(err);
       });
+  } else {
+    console.log('socket: anyone users found');
   }
 }
 
-// When the user connects.. perform this
 function onConnect(socket) {
-  // When the client emits 'info', this listens and executes
   if (socket.userId) {
-    User
+    return User
       .findById(socket.userId)
       .then(function(user) {
         if (user) {
-          user
+          return user
             .updateAttributes({
               online: true,
               lastLoginAt: moment().format("YYYY-MM-DD HH:mm:ss")
             })
-            .then(function(user) {
-              console.log('socket: user online', user.name);
-              return;
-            })
-            .catch(function(err) {
-              console.log(err);
-              return;
-            });
         } else {
-          console.log('socket: anyone users found');
-          return;
+          throw new Error('socket: anyone users found');
         }
       })
+      .then(function(user) {
+        console.log('socket: user online', user.name);
+
+        // Insert sockets below
+
+        //Ordered alphabetically
+        require('../api/agent/agent.socket').register(socket);
+        require('../api/ami/ami.socket').register(socket);
+        require('../api/automation/automation.socket').register(socket);
+        require('../api/business_action/business_action.socket').register(socket);
+        require('../api/business_condition/business_condition.socket').register(socket);
+        require('../api/chat_application/chat_application.socket').register(socket);
+        require('../api/chat_enquiry/enquiry.socket').register(socket);
+        require('../api/chat_message/chat_message.socket').register(socket);
+        require('../api/chat_queue/chat_queue.socket').register(socket);
+        require('../api/chat_room/chat_room.socket').register(socket);
+        require('../api/chat_visitor/chat_visitor.socket').register(socket);
+        require('../api/chat_website/chat_website.socket').register(socket);
+        require('../api/company/company.socket').register(socket);
+        require('../api/contact/contact.socket').register(socket);
+        require('../api/contact_manager/contact_manager.socket').register(socket);
+        require('../api/custom_field/custom_field.socket').register(socket);
+        require('../api/dashboard/dashboard.socket').register(socket);
+        require('../api/desk_account/desk_account.socket').register(socket);
+        require('../api/desk_configuration/desk_configuration.socket').register(socket);
+        require('../api/desk_field/desk_field.socket').register(socket);
+        require('../api/event/event.socket').register(socket);
+        require('../api/fax_account/fax_account.socket').register(socket);
+        require('../api/fax_application/fax_application.socket').register(socket);
+        require('../api/fax_business_automation/fax_business_automation.socket').register(socket);
+        require('../api/fax_message/fax_message.socket').register(socket);
+        require('../api/fax_queue/fax_queue.socket').register(socket);
+        require('../api/fax_room/fax_room.socket').register(socket);
+        require('../api/freshdesk_account/freshdesk_account.socket').register(socket);
+        require('../api/freshdesk_configuration/freshdesk_configuration.socket').register(socket);
+        require('../api/freshdesk_field/freshdesk_field.socket').register(socket);
+        require('../api/integration/integration.socket').register(socket);
+        require('../api/interval/interval.socket').register(socket);
+        require('../api/mail_account/mail_account.socket').register(socket);
+        require('../api/mail_application/mail_application.socket').register(socket);
+        require('../api/mail_attachment/mail_attachment.socket').register(socket);
+        require('../api/mail_business_automation/mail_business_automation.socket').register(socket);
+        require('../api/mail_message/mail_message.socket').register(socket);
+        require('../api/mail_queue/mail_queue.socket').register(socket);
+        require('../api/mail_room/mail_room.socket').register(socket);
+        require('../api/mail_server_in/mail_server_in.socket').register(socket);
+        require('../api/mail_template/mail_template.socket').register(socket);
+        require('../api/module/module.socket').register(socket);
+        require('../api/motionbar/motionbar.socket').register(socket);
+        require('../api/default_report/default_report.socket').register(socket);
+        require('../api/custom_report/custom_report.socket').register(socket);
+        require('../api/report_tree/report_tree.socket').register(socket);
+        require('../api/report_agent/report_agent.socket').register(socket);
+        require('../api/report_chat/report_chat.socket').register(socket);
+        require('../api/report_chat_session/report_chat_session.socket').register(socket);
+        require('../api/report_integration/report_integration.socket').register(socket);
+        require('../api/report_mail/report_mail.socket').register(socket);
+        require('../api/report_mail_session/report_mail_session.socket').register(socket);
+        require('../api/report_queue/report_queue.socket').register(socket);
+        require('../api/salesforce_account/salesforce_account.socket').register(socket);
+        require('../api/salesforce_configuration/salesforce_configuration.socket').register(socket);
+        require('../api/salesforce_field/salesforce_field.socket').register(socket);
+        require('../api/setting/setting.socket').register(socket);
+        require('../api/square_odbc/square_odbc.socket').register(socket);
+        require('../api/square_project/square_project.socket').register(socket);
+        require('../api/sugarcrm_account/sugarcrm_account.socket').register(socket);
+        require('../api/sugarcrm_configuration/sugarcrm_configuration.socket').register(socket);
+        require('../api/sugarcrm_field/sugarcrm_field.socket').register(socket);
+        require('../api/tag/tag.socket').register(socket);
+        require('../api/team/team.socket.js').register(socket);
+        require('../api/trigger/trigger.socket').register(socket);
+        require('../api/trunk/trunk.socket').register(socket);
+        require('../api/user/user.socket').register(socket);
+        require('../api/update/update.socket').register(socket);
+        require('../api/upload/upload.socket').register(socket);
+        require('../api/user_has_chat_queue/user_has_chat_queue.socket').register(socket);
+        require('../api/user_has_chat_room/user_has_chat_room.socket').register(socket);
+        require('../api/user_has_fax_queue/user_has_fax_queue.socket').register(socket);
+        require('../api/user_has_mail_queue/user_has_mail_queue.socket').register(socket);
+        require('../api/user_has_team/user_has_team.socket').register(socket);
+        require('../api/user_has_voice_queue/user_has_voice_queue.socket').register(socket);
+        require('../api/variable/variable.socket').register(socket);
+        require('../api/metric/metric.socket').register(socket);
+        require('../api/voice_context/voice_context.socket').register(socket);
+        require('../api/voice_extension/voice_extension.socket').register(socket);
+        require('../api/voice_musiconhold/voice_musiconhold.socket').register(socket);
+        require('../api/voice_queue/voice_queue.socket').register(socket);
+        require('../api/voice_voicemail/voice_voicemail.socket').register(socket);
+        require('../api/xchatty/xchatty.socket').register(socket);
+        require('../api/zendesk_account/zendesk_account.socket').register(socket);
+        require('../api/zendesk_configuration/zendesk_configuration.socket').register(socket);
+        require('../api/zendesk_field/zendesk_field.socket').register(socket);
+
+      })
       .catch(function(err) {
-        console.log(err);
-        return;
+        console.error(err);
       });
+  } else {
+    console.log('socket: anyone users found');
   }
 
   socket.on('info', function(data) {
     console.info('[%s] %s', socket.address, JSON.stringify(data, null, 2));
   });
 
-  // Insert sockets below
-  require('../api/salesforce_field/salesforce_field.socket').register(socket);
-  require('../api/salesforce_configuration/salesforce_configuration.socket').register(socket);
-  require('../api/salesforce_account/salesforce_account.socket').register(socket);
-  require('../api/desk_field/desk_field.socket').register(socket);
-  require('../api/desk_configuration/desk_configuration.socket').register(socket);
-  require('../api/desk_account/desk_account.socket').register(socket);
-  require('../api/report/report.socket').register(socket);
-  require('../api/update/update.socket').register(socket);
-  require('../api/report_chat_session/report_chat_session.socket').register(socket);
-  require('../api/zendesk_field/zendesk_field.socket').register(socket);
-  require('../api/report_chat/report_chat.socket').register(socket);
-  require('../api/zendesk_configuration/zendesk_configuration.socket').register(socket);
-  require('../api/motionbar/motionbar.socket').register(socket);
-  require('../api/report_mail_session/report_mail_session.socket').register(socket);
-  require('../api/report_mail/report_mail.socket').register(socket);
-  require('../api/zendesk_account/zendesk_account.socket').register(socket);
-  require('../api/report_queue/report_queue.socket').register(socket);
-  require('../api/report_integration/report_integration.socket').register(socket);
-  require('../api/dashboard/dashboard.socket').register(socket);
-  require('../api/setting/setting.socket').register(socket);
-  require('../api/report_agent/report_agent.socket').register(socket);
-  require('../api/trigger/trigger.socket').register(socket);
-  require('../api/automation/automation.socket').register(socket);
-  require('../api/mail_template/mail_template.socket').register(socket);
-  require('../api/ami/ami.socket').register(socket);
-  require('../api/integration/integration.socket').register(socket);
-  require('../api/voice_musiconhold/voice_musiconhold.socket').register(socket);
-  require('../api/voice_voicemail/voice_voicemail.socket').register(socket);
-  require('../api/contact_manager/contact_manager.socket').register(socket);
-  require('../api/company/company.socket').register(socket);
-  require('../api/fax_business_automation/fax_business_automation.socket').register(socket);
-  require('../api/mail_business_automation/mail_business_automation.socket').register(socket);
-  require('../api/business_action/business_action.socket').register(socket);
-  require('../api/business_condition/business_condition.socket').register(socket);
-  require('../api/interval/interval.socket').register(socket);
-  require('../api/voice_extension/voice_extension.socket').register(socket);
-  require('../api/voice_context/voice_context.socket').register(socket);
-  require('../api/user_has_voice_queue/user_has_voice_queue.socket').register(socket);
-  require('../api/voice_queue/voice_queue.socket').register(socket);
-  require('../api/trunk/trunk.socket').register(socket);
-  require('../api/user_has_chat_queue/user_has_chat_queue.socket').register(socket);
-  require('../api/chat_application/chat_application.socket').register(socket);
-  require('../api/user_has_mail_queue/user_has_mail_queue.socket').register(socket);
-  require('../api/event/event.socket').register(socket);
-  require('../api/square_odbc/square_odbc.socket').register(socket);
-  require('../api/fax_application/fax_application.socket').register(socket);
-  require('../api/user_has_fax_queue/user_has_fax_queue.socket').register(socket);
-  require('../api/fax_queue/fax_queue.socket').register(socket);
-  require('../api/user_has_team/user_has_team.socket').register(socket);
-  require('../api/variable/variable.socket').register(socket);
-  require('../api/tag/tag.socket').register(socket);
-  require('../api/square_project/square_project.socket').register(socket);
-  require('../api/chat_queue/chat_queue.socket').register(socket);
-  require('../api/fax_message/fax_message.socket').register(socket);
-  require('../api/fax_room/fax_room.socket').register(socket);
-  require('../api/fax_account/fax_account.socket').register(socket);
-  require('../api/chat_enquiry/enquiry.socket').register(socket);
-  require('../api/chat_message/chat_message.socket').register(socket);
-  require('../api/chat_room/chat_room.socket').register(socket);
-  require('../api/chat_visitor/chat_visitor.socket').register(socket);
-  require('../api/chat_website/chat_website.socket').register(socket);
-  require('../api/contact/contact.socket').register(socket);
-  require('../api/mail_attachment/mail_attachment.socket').register(socket);
-  require('../api/mail_account/mail_account.socket').register(socket);
-  require('../api/mail_message/mail_message.socket').register(socket);
-  require('../api/mail_application/mail_application.socket').register(socket);
-  require('../api/mail_room/mail_room.socket').register(socket);
-  require('../api/mail_queue/mail_queue.socket').register(socket);
-  require('../api/mail_server_in/mail_server_in.socket').register(socket);
-  require('../api/module/module.socket').register(socket);
-  require('../api/team/team.socket.js').register(socket);
-  require('../api/upload/upload.socket').register(socket);
-  require('../api/user/user.socket').register(socket);
-  require('../api/agent/agent.socket').register(socket);
-  require('../api/user_has_chat_room/user_has_chat_room.socket').register(socket);
-  require('../api/xchatty/xchatty.socket').register(socket);
-
 }
 
 module.exports = function(socketio) {
diff --git a/server/config/triggers/chat.js b/server/config/triggers/chat.js
new file mode 100644
index 0000000..a96e72f
--- /dev/null
+++ b/server/config/triggers/chat.js
@@ -0,0 +1,71 @@
+var _ = require('lodash');
+var Mustache = require('mustache');
+
+var sequelize = require('../../models').sequelize;
+var ChatEnquiry = require('../../models').ChatEnquiry;
+var MailMessage = require('../../models').MailMessage;
+var MailServerOut = require('../../models').MailServerOut;
+
+function Chat() {
+  console.log('Trigger Chat Initialization...');
+
+  ChatEnquiry.afterCreate(function (chatEnquiry, options) {
+    var _chatEnquiry = chatEnquiry;
+    var _chatWebsite;
+    var _mailServerOut;
+    var _offlineTemplate;
+
+    return chatEnquiry
+      .getChatWebsite()
+      .then(function (chatWebsite) {
+        _chatWebsite = chatWebsite;
+        _chatEnquiry.chatWebsite = _chatWebsite.name;
+        if (_chatWebsite && _chatWebsite.enquiry_forwarding && _chatWebsite.enquiry_forwarding_address) {
+          return _chatWebsite
+            .getOfflineTemplate();
+        } else {
+          throw new Error({
+            message: 'chatWebsite can\'t send offline messages via mail'
+          });
+        }
+      })
+      .then(function (offlineTemplate) {
+        _offlineTemplate = offlineTemplate;
+        if (_offlineTemplate) {
+          _offlineTemplate.html = Mustache.render(_offlineTemplate.html, _chatEnquiry);
+          _offlineTemplate.subject = Mustache.render(_offlineTemplate.subject, _chatEnquiry);
+        } else {
+          throw new Error({
+            message: 'offlineTemplate not found. ChatWebsite: ' + _chatWebsite.name
+          });
+        }
+
+        return MailServerOut
+          .findOne({
+            where: {
+              service: true
+            }
+          });
+      })
+      .then(function (mailServerOut) {
+        _mailServerOut = mailServerOut;
+
+        if (!_mailServerOut) {
+          throw new Error('Motion Service SMTP not configured!');
+        }
+
+        return MailMessage
+          .create({
+            from: _mailServerOut.username,
+            to: _chatWebsite.enquiry_forwarding_address,
+            subject: _offlineTemplate.subject,
+            html: _offlineTemplate.html,
+            status: 'SENDING'
+          }, {
+            transaction: options ? options.transaction : null
+          });
+      });
+  });
+}
+
+module.exports = Chat;
diff --git a/server/config/triggers/index.js b/server/config/triggers/index.js
index fc3e990..80cbe70 100644
--- a/server/config/triggers/index.js
+++ b/server/config/triggers/index.js
@@ -4,38 +4,40 @@ var _ = require('lodash');
 var Util = require('./util');
 var Voice = require('./voice');
 var Mail = require('./mail');
+var Chat = require('./chat');
 var Cm = require('./cm');
 var Trigger = require('../../models').Trigger;
 var ReportAgent = require('../../models').ReportAgent;
 var MailMessage = require('../../models').MailMessage;
 
-module.exports = function() {
+module.exports = function () {
 
   var util = new Util();
   var voice = new Voice();
+  var chat = new Chat();
   var mail = new Mail();
   var cm = new Cm();
 
   Trigger
     .findAll()
-    .then(function(triggers) {
+    .then(function (triggers) {
       synchTriggers(triggers);
       console.log('Triggers are ', triggers.length);
-      ReportAgent.afterCreate(function(doc) {
+      ReportAgent.afterCreate(function (doc) {
         var actions = util.getActionsByTriggers(doc, _.filter(triggers, {
           channel: 'voice'
         }));
         console.log('After agent create, Actions are ', actions.length);
         execActions(actions, doc, 'voice', util, voice, mail, cm);
       })
-      ReportAgent.afterUpdate(function(doc) {
+      ReportAgent.afterUpdate(function (doc) {
         var actions = util.getActionsByTriggers(doc, _.filter(triggers, {
           channel: 'voice'
         }));
         console.log('After agent update, Actions are ', actions.length);
         execActions(actions, doc, 'voice', util, voice, mail, cm);
       })
-      MailMessage.afterCreate(function(doc) {
+      MailMessage.afterCreate(function (doc) {
         if (doc.status === 'RECEIVED') {
           var actions = util.getActionsByTriggers(doc, _.filter(triggers, {
             channel: 'mail'
@@ -44,37 +46,37 @@ module.exports = function() {
         }
       })
     })
-    .catch(function(err) {
+    .catch(function (err) {
       console.error(err);
     });
 }

 function execActions(actions, doc, channel, util, voice, mail, cm) {
-  actions.forEach(function(rule) {
+  actions.forEach(function (rule) {
     console.log('Executing action "' + rule.field.value + '"');
     switch (rule.field.value) {
-      case 'contactManager':
-        cm.manageContact(doc.dataValues, channel);
-        break;
-      case 'template':
-        mail.sendTemplate(rule.data, rule.data2);
-        break;
-      default:
+    case 'contactManager':
+      cm.manageContact(doc.dataValues, channel);
+      break;
+    case 'template':
+      mail.sendTemplate(rule.data, rule.data2);
+      break;
+    default:
     }
   });
 }
 
 function synchTriggers(triggers) {
-  Trigger.afterCreate(function(doc) {
+  Trigger.afterCreate(function (doc) {
     updateCollection(triggers, doc);
     console.log('After create, Triggers are ', triggers.length);
   });
-  Trigger.afterUpdate(function(doc) {
+  Trigger.afterUpdate(function (doc) {
     updateCollection(triggers, doc);
     console.log('After update, Triggers are ', triggers.length);
   });
-  Trigger.afterDestroy(function(doc) {
+  Trigger.afterDestroy(function (doc) {
     _.remove(triggers, {
       id: doc.id
     });
diff --git a/server/models/chat_enquiry.js b/server/models/chat_enquiry.js
index 8851425..b61f03a 100644
--- a/server/models/chat_enquiry.js
+++ b/server/models/chat_enquiry.js
@@ -1,6 +1,6 @@
 'use strict';
 
-module.exports = function(sequelize, DataTypes) {
+module.exports = function (sequelize, DataTypes) {
 
   var ChatEnquiry = sequelize.define('ChatEnquiry', {
     username: DataTypes.STRING,
@@ -12,7 +12,8 @@ module.exports = function(sequelize, DataTypes) {
     }
   }, {
     tableName: 'chat_enquiries',
-    associate: function(models) {
+    associate: function (models) {
+      ChatEnquiry.belongsTo(models.ChatWebsite);
       ChatEnquiry.belongsTo(models.ChatVisitor);
     }
   });
diff --git a/server/models/chat_website.js b/server/models/chat_website.js
index 6beba8c..862e0e7 100644
--- a/server/models/chat_website.js
+++ b/server/models/chat_website.js
@@ -4,7 +4,7 @@
 
 var crypto = require('crypto');
 
-module.exports = function(sequelize, DataTypes) {
+module.exports = function (sequelize, DataTypes) {
 
 	var ChatWebsite = sequelize.define('ChatWebsite', {
 		name: DataTypes.STRING,
@@ -74,10 +74,20 @@ module.exports = function(sequelize, DataTypes) {
 			type: DataTypes.BOOLEAN,
 			defaultValue: true
 		},
+		enquiry_forwarding: {
+			type: DataTypes.BOOLEAN,
+			defaultValue: false
+		},
+		enquiry_forwarding_address: {
+			type: DataTypes.STRING
+		},
 	}, {
 		tableName: 'chat_websites',
-		associate: function(models) {
+		associate: function (models) {
 			// hasMany relations
+			ChatWebsite.belongsTo(models.MailTemplate, {
+				as: 'OfflineTemplate'
+			});
 			ChatWebsite.hasMany(models.ChatRoom);
 			ChatWebsite.hasMany(models.ChatApplication);
 		}
diff --git a/server/models/contact.js b/server/models/contact.js
index 9851d6d..288b512 100644
--- a/server/models/contact.js
+++ b/server/models/contact.js
@@ -30,6 +30,10 @@ module.exports = function(sequelize, DataTypes) {
         through: 'contact_has_emails',
         as: 'Emails'
       });
+      Contact.belongsToMany(models.CustomField, {
+        through: models.ContactHasCustomField,
+        as: 'CustomFields'
+      });
       Contact.belongsTo(models.Company);
       Contact.belongsTo(models.User);
     }
diff --git a/server/models/contact_email.js b/server/models/contact_email.js
index 225c559..d20827c 100644
--- a/server/models/contact_email.js
+++ b/server/models/contact_email.js
@@ -2,17 +2,16 @@
  * Contact Model
  */
 
-module.exports = function(sequelize, DataTypes) {
+module.exports = function (sequelize, DataTypes) {
 
   var ContactEmail = sequelize.define('ContactEmail', {
     email: {
       type: DataTypes.STRING,
-      unique: true,
       primaryKey: true
     }
   }, {
     tableName: 'contact_emails',
-    associate: function(models) {
+    associate: function (models) {
       ContactEmail.belongsToMany(models.Contact, {
         through: 'contact_has_emails'
       });
diff --git a/server/models/contact_has_custom_field.js b/server/models/contact_has_custom_field.js
new file mode 100644
index 0000000..650b530
--- /dev/null
+++ b/server/models/contact_has_custom_field.js
@@ -0,0 +1,16 @@
+/**
+ * contact has customfield Model
+ */
+
+var crypto = require('crypto');
+
+module.exports = function(sequelize, DataTypes) {
+
+	var ContactHasCustomField = sequelize.define('ContactHasCustomField', {
+		value: DataTypes.STRING
+	}, {
+		tableName: 'contact_has_custom_fields'
+	});
+
+	return ContactHasCustomField;
+};
diff --git a/server/models/contact_phone.js b/server/models/contact_phone.js
index d148923..08d704f 100644
--- a/server/models/contact_phone.js
+++ b/server/models/contact_phone.js
@@ -2,17 +2,16 @@
  * Contact Model
  */
 
-module.exports = function(sequelize, DataTypes) {
+module.exports = function (sequelize, DataTypes) {
 
   var ContactPhone = sequelize.define('ContactPhone', {
     phone: {
       type: DataTypes.STRING,
-      unique: true,
       primaryKey: true
     }
   }, {
     tableName: 'contact_phones',
-    associate: function(models) {
+    associate: function (models) {
       ContactPhone.belongsToMany(models.Contact, {
         through: 'contact_has_phones'
       });
diff --git a/server/models/custom_field.js b/server/models/custom_field.js
new file mode 100644
index 0000000..ae475b0
--- /dev/null
+++ b/server/models/custom_field.js
@@ -0,0 +1,28 @@
+/**
+ * customfield Model
+ */
+
+module.exports = function(sequelize, DataTypes) {
+
+  var CustomField = sequelize.define('CustomField', {
+    name: {
+      type: DataTypes.STRING,
+      unique: true
+    },
+    type: DataTypes.STRING,
+    active: {
+      type: DataTypes.BOOLEAN,
+      defaultValue: true
+    },
+    values: DataTypes.STRING
+  }, {
+    tableName: 'contact_custom_fields',
+    associate: function(models) {
+      CustomField.belongsToMany(models.Contact, {
+        through: models.ContactHasCustomField
+      });
+    }
+  });
+
+  return CustomField;
+};
diff --git a/server/models/custom_report.js b/server/models/custom_report.js
new file mode 100644
index 0000000..2e35e9a
--- /dev/null
+++ b/server/models/custom_report.js
@@ -0,0 +1,14 @@
+'use strict';
+
+module.exports = function(sequelize, DataTypes) {
+
+  var CustomReport = sequelize.define('CustomReport', {
+    name: DataTypes.STRING,
+    description: DataTypes.STRING,
+    parent: DataTypes.STRING
+  }, {
+    tableName: 'custom_reports'
+  });
+
+  return CustomReport;
+};
diff --git a/server/models/default_report.js b/server/models/default_report.js
new file mode 100644
index 0000000..4abe87d
--- /dev/null
+++ b/server/models/default_report.js
@@ -0,0 +1,14 @@
+'use strict';
+
+module.exports = function(sequelize, DataTypes) {
+
+  var DefaultReport = sequelize.define('DefaultReport', {
+    name: DataTypes.STRING,
+    description: DataTypes.STRING,
+    parent: DataTypes.STRING
+  }, {
+    tableName: 'default_reports'
+  });
+
+  return DefaultReport;
+};
diff --git a/server/models/desk_account.js b/server/models/desk_account.js
index 1861bad..57562ca 100644
--- a/server/models/desk_account.js
+++ b/server/models/desk_account.js
@@ -25,7 +25,9 @@ module.exports = function(sequelize, DataTypes) {
   }, {
     tableName: 'desk_accounts',
     associate: function(models) {
-      DeskAccount.hasMany(models.DeskConfiguration);
+      DeskAccount.hasMany(models.DeskConfiguration, {
+        foreignKey: 'AccountId'
+      });
     }
   });
 
diff --git a/server/models/desk_configuration.js b/server/models/desk_configuration.js
index 1144c22..fb92e7e 100644
--- a/server/models/desk_configuration.js
+++ b/server/models/desk_configuration.js
@@ -7,7 +7,9 @@ module.exports = function(sequelize, DataTypes) {
   }, {
     tableName: 'desk_configurations',
     associate: function(models) {
-      models.DeskConfiguration.belongsTo(models.DeskAccount);
+      models.DeskConfiguration.belongsTo(models.DeskAccount, {
+        foreignKey: 'AccountId'
+      });
       models.DeskConfiguration.hasMany(models.DeskField, {
         as: 'Subject',
         foreignKey: 'SubjectId'
diff --git a/server/models/freshdesk_account.js b/server/models/freshdesk_account.js
new file mode 100644
index 0000000..09ca148
--- /dev/null
+++ b/server/models/freshdesk_account.js
@@ -0,0 +1,24 @@
+'use strict';
+
+module.exports = function(sequelize, DataTypes) {
+  return sequelize.define('FreshdeskAccount', {
+    name: DataTypes.STRING,
+    description: DataTypes.STRING,
+    username: {
+      type: DataTypes.STRING,
+      unique: true
+    },
+    remoteUri: {
+      type: DataTypes.STRING,
+      unique: true
+    },
+    apiKey: DataTypes.STRING
+  }, {
+    tableName: 'freshdesk_accounts',
+    associate: function(models) {
+      models.FreshdeskAccount.hasMany(models.FreshdeskConfiguration, {
+        foreignKey: 'AccountId'
+      });
+    }
+  });
+};
diff --git a/server/models/freshdesk_configuration.js b/server/models/freshdesk_configuration.js
new file mode 100644
index 0000000..4a1299a
--- /dev/null
+++ b/server/models/freshdesk_configuration.js
@@ -0,0 +1,27 @@
+'use strict';
+
+module.exports = function(sequelize, DataTypes) {
+  return sequelize.define('FreshdeskConfiguration', {
+    name: DataTypes.STRING,
+    description: DataTypes.STRING
+  }, {
+    tableName: 'freshdesk_configurations',
+    associate: function(models) {
+      models.FreshdeskConfiguration.belongsTo(models.FreshdeskAccount, {
+        foreignKey: 'AccountId'
+      });
+      models.FreshdeskConfiguration.hasMany(models.FreshdeskField, {
+        as: 'Subject',
+        foreignKey: 'SubjectId'
+      });
+      models.FreshdeskConfiguration.hasMany(models.FreshdeskField, {
+        as: 'Description',
+        foreignKey: 'DescriptionId'
+      });
+      models.FreshdeskConfiguration.hasMany(models.FreshdeskField, {
+        as: 'Field',
+        foreignKey: 'FieldId'
+      });
+    }
+  });
+};
diff --git a/server/models/freshdesk_field.js b/server/models/freshdesk_field.js
new file mode 100644
index 0000000..a1c54c9
--- /dev/null
+++ b/server/models/freshdesk_field.js
@@ -0,0 +1,26 @@
+'use strict';
+
+module.exports = function(sequelize, DataTypes) {
+  return sequelize.define('FreshdeskField', {
+    type: {
+      type: DataTypes.ENUM('string', 'variable', 'key_value'),
+      defaultValue: 'string'
+    },
+    content: DataTypes.STRING,
+    key: DataTypes.STRING,
+    keyType: {
+      type: DataTypes.ENUM('string', 'variable')
+    },
+    keyContent: DataTypes.STRING,
+    idField: DataTypes.STRING,
+    customField: {
+      type: DataTypes.BOOLEAN,
+      defaultValue: true
+    }
+  }, {
+    tableName: 'freshdesk_fields',
+    associate: function(models) {
+      models.FreshdeskField.belongsTo(models.Variable);
+    }
+  });
+};
diff --git a/server/models/index.js b/server/models/index.js
index 50febb1..d299094 100644
--- a/server/models/index.js
+++ b/server/models/index.js
@@ -6,6 +6,14 @@ var config = require('../config/environment');
 var Sequelize = require("sequelize");
 var moment = require('moment');
 
+//Used to disable all warnings for Promise!
+Sequelize.Promise.config({
+  // Enables all warnings except forgotten return statements.
+  warnings: {
+    wForgottenReturn: false
+  }
+});
+
 var sequelize = new Sequelize(config.db.database, config.db.username, config.db.password, {
   host: config.db.host,
   dialect: 'mysql',
@@ -17,17 +25,17 @@ var db = {};
 
 fs
   .readdirSync(__dirname)
-  .filter(function(file) {
+  .filter(function (file) {
     return (fs.lstatSync(path.join(__dirname, file)).isFile()) &&
       (file.indexOf(".") !== 0) && (file.indexOf('.spec.') === -1) && (file !== "index.js");
   })
-  .forEach(function(file) {
+  .forEach(function (file) {
     var model = sequelize["import"](path.join(__dirname, file));
     db[model.name] = model;
   });
 
 // Invoke associations on each of the models
-Object.keys(db).forEach(function(modelName) {
+Object.keys(db).forEach(function (modelName) {
   if (db[modelName].options.hasOwnProperty('associate')) {
     db[modelName].options.associate(db);
   }
@@ -44,17 +52,17 @@ var sequelize_history = new Sequelize(config.db_history.database, config.db_hist
 
 fs
   .readdirSync(path.join(__dirname, 'history'))
-  .filter(function(file) {
+  .filter(function (file) {
     return (fs.lstatSync(path.join(__dirname, 'history', file)).isFile()) &&
       (file.indexOf(".") !== 0) && (file.indexOf('.spec.') === -1) && (file !== "index.js");
   })
-  .forEach(function(file) {
+  .forEach(function (file) {
     var model = sequelize_history["import"](path.join(__dirname, 'history', file));
     db.history[model.name] = model;
   });
 
 // Invoke associations on each of the models
-Object.keys(db.history).forEach(function(modelName) {
+Object.keys(db.history).forEach(function (modelName) {
   if (db.history[modelName].options.hasOwnProperty('associate')) {
     db.history[modelName].options.associate(db.history);
   }
diff --git a/server/models/integration.js b/server/models/integration.js
index 0bb19c9..53aecce 100644
--- a/server/models/integration.js
+++ b/server/models/integration.js
@@ -25,26 +25,33 @@ module.exports = function(sequelize, DataTypes) {
     },
     filename: {
       type: DataTypes.STRING,
-      allowNull: false,
-      validate: {
-        notEmpty: true
-      }
+      // allowNull: false,
+      // validate: {
+      //   notEmpty: true
+      // }
     },
     path: {
       type: DataTypes.STRING,
-      allowNull: false,
-      validate: {
-        notEmpty: true
-      }
+      // allowNull: false,
+      // validate: {
+      //   notEmpty: true
+      // }
     },
     type: {
       type: DataTypes.STRING,
-      allowNull: false
+      // allowNull: false
     },
     size: {
       type: DataTypes.INTEGER,
-      allowNull: false
+      // allowNull: false
+    },
+    active: {
+      type: DataTypes.BOOLEAN,
+      defaultValue: false
     },
+    author: DataTypes.STRING,
+    logo: DataTypes.STRING,
+    state: DataTypes.STRING,
     description: DataTypes.STRING
   }, {
     tableName: 'integrations'
diff --git a/server/models/mail_message.js b/server/models/mail_message.js
index 00f03d8..a2e3670 100644
--- a/server/models/mail_message.js
+++ b/server/models/mail_message.js
@@ -4,7 +4,7 @@
 
 var crypto = require('crypto');
 
-module.exports = function(sequelize, DataTypes) {
+module.exports = function (sequelize, DataTypes) {
 
 	var MailMessage = sequelize.define('MailMessage', {
 		messageId: DataTypes.STRING,
@@ -23,27 +23,26 @@ module.exports = function(sequelize, DataTypes) {
 		}
 	}, {
 		tableName: 'mail_messages',
-		associate: function(models) {
+		associate: function (models) {
 			MailMessage.belongsTo(models.MailRoom);
 
-			MailMessage.belongsTo(models.Contact, {
-				as: 'From',
-				onDelete: 'cascade'
+			MailMessage.belongsTo(models.ContactEmail, {
+				as: 'From'
 			});
 
-			MailMessage.belongsToMany(models.Contact, {
+			MailMessage.belongsToMany(models.ContactEmail, {
 				as: 'To',
 				through: 'mail_message_has_to',
 				onDelete: 'cascade'
 			});
 
-			MailMessage.belongsToMany(models.Contact, {
+			MailMessage.belongsToMany(models.ContactEmail, {
 				as: 'Cc',
 				through: 'mail_message_has_cc',
 				onDelete: 'cascade'
 			});
 
-			MailMessage.belongsToMany(models.Contact, {
+			MailMessage.belongsToMany(models.ContactEmail, {
 				as: 'Bcc',
 				through: 'mail_message_has_bcc',
 				onDelete: 'cascade'
diff --git a/server/models/mail_server_in.js b/server/models/mail_server_in.js
index 05a496f..9f92813 100644
--- a/server/models/mail_server_in.js
+++ b/server/models/mail_server_in.js
@@ -30,13 +30,9 @@ module.exports = function(sequelize, DataTypes) {
 			defaultValue: 'IMAP'
 		},
 		state: {
-			type: DataTypes.ENUM('CONNECTED', 'DISCONNECTED', 'ERROR'),
-			defaultValue: 'DISCONNECTED'
-		},
-		source: {
-			type: DataTypes.STRING
+			type: DataTypes.ENUM('CONNECTED', 'DISCONNECTED', 'ERROR', 'UNKNOWN'),
+			defaultValue: 'UNKNOWN'
 		}
-
 	}, {
 		tableName: 'mail_servers_in'
 	});
diff --git a/server/models/mail_server_out.js b/server/models/mail_server_out.js
index e70a302..9a89310 100644
--- a/server/models/mail_server_out.js
+++ b/server/models/mail_server_out.js
@@ -6,7 +6,7 @@ var crypto = require('crypto');
 var smtpTransport = require('nodemailer-smtp-transport');
 var nodemailer = require('nodemailer');
 
-module.exports = function(sequelize, DataTypes) {
+module.exports = function (sequelize, DataTypes) {
 
 	var MailServerOut = sequelize.define('MailServerOut', {
 		description: DataTypes.STRING,
@@ -17,7 +17,15 @@ module.exports = function(sequelize, DataTypes) {
 		ssl: {
 			type: DataTypes.BOOLEAN,
 			defaultValue: false
-		}
+		},
+		service: {
+			type: DataTypes.BOOLEAN,
+			defaultValue: false
+		},
+		state: {
+			type: DataTypes.ENUM('CONNECTED', 'DISCONNECTED', 'ERROR', 'UNKNOWN'),
+			defaultValue: 'UNKNOWN'
+		},
 	}, {
 		tableName: 'mail_servers_out'
 	});
diff --git a/server/models/metric.js b/server/models/metric.js
new file mode 100644
index 0000000..6341030
--- /dev/null
+++ b/server/models/metric.js
@@ -0,0 +1,21 @@
+'use strict';
+
+module.exports = function(sequelize, DataTypes) {
+
+  var Metric = sequelize.define('Metric', {
+    name: {
+      type: DataTypes.STRING,
+      unique: true,
+      validate: {
+        notEmpty: true
+      },
+    },
+    metric: DataTypes.TEXT,
+    description: DataTypes.STRING
+  }, {
+    tableName: 'metrics'
+  });
+
+  return Metric;
+
+};
diff --git a/server/models/report.js b/server/models/report.js
deleted file mode 100644
index 134df09..0000000
--- a/server/models/report.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var Report = sequelize.define('Report', {
-    name: DataTypes.STRING,
-    description: DataTypes.STRING
-  }, {
-    tableName: 'reports'
-  });
-
-  return Report;
-};
diff --git a/server/models/report_tree.js b/server/models/report_tree.js
new file mode 100644
index 0000000..2c14bfe
--- /dev/null
+++ b/server/models/report_tree.js
@@ -0,0 +1,12 @@
+'use strict';
+
+module.exports = function(sequelize, DataTypes) {
+
+  var ReportTree = sequelize.define('ReportTree', {
+    tree: DataTypes.TEXT
+  }, {
+    tableName: 'report_trees'
+  });
+
+  return ReportTree;
+};
diff --git a/server/models/salesforce_account.js b/server/models/salesforce_account.js
index f5592b9..c7319f2 100644
--- a/server/models/salesforce_account.js
+++ b/server/models/salesforce_account.js
@@ -16,7 +16,9 @@ module.exports = function(sequelize, DataTypes) {
   }, {
     tableName: 'salesforce_accounts',
     associate: function(models) {
-      models.SalesforceAccount.hasMany(models.SalesforceConfiguration);
+      models.SalesforceAccount.hasMany(models.SalesforceConfiguration, {
+        foreignKey: 'AccountId'
+      });
     }
   });
 };
diff --git a/server/models/salesforce_configuration.js b/server/models/salesforce_configuration.js
index 4e93120..6850116 100644
--- a/server/models/salesforce_configuration.js
+++ b/server/models/salesforce_configuration.js
@@ -7,7 +7,9 @@ module.exports = function(sequelize, DataTypes) {
   }, {
     tableName: 'salesforce_configurations',
     associate: function(models) {
-      models.SalesforceConfiguration.belongsTo(models.SalesforceAccount);
+      models.SalesforceConfiguration.belongsTo(models.SalesforceAccount, {
+        foreignKey: 'AccountId'
+      });
       models.SalesforceConfiguration.hasMany(models.SalesforceField, {
         as: 'Subject',
         foreignKey: 'SubjectId'
diff --git a/server/models/sugarcrm_account.js b/server/models/sugarcrm_account.js
new file mode 100644
index 0000000..318d984
--- /dev/null
+++ b/server/models/sugarcrm_account.js
@@ -0,0 +1,20 @@
+'use strict';
+
+module.exports = function(sequelize, DataTypes) {
+  return sequelize.define('SugarcrmAccount', {
+    name: DataTypes.STRING,
+    description: DataTypes.STRING,
+    username: {
+      type: DataTypes.STRING
+    },
+    remoteUri: DataTypes.STRING,
+    password: DataTypes.STRING
+  }, {
+    tableName: 'sugarcrm_accounts',
+    associate: function(models) {
+      models.SugarcrmAccount.hasMany(models.SugarcrmConfiguration, {
+        foreignKey: 'AccountId'
+      });
+    }
+  });
+};
diff --git a/server/models/sugarcrm_configuration.js b/server/models/sugarcrm_configuration.js
new file mode 100644
index 0000000..cae512a
--- /dev/null
+++ b/server/models/sugarcrm_configuration.js
@@ -0,0 +1,27 @@
+'use strict';
+
+module.exports = function(sequelize, DataTypes) {
+  return sequelize.define('SugarcrmConfiguration', {
+    name: DataTypes.STRING,
+    description: DataTypes.STRING
+  }, {
+    tableName: 'sugarcrm_configurations',
+    associate: function(models) {
+      models.SugarcrmConfiguration.belongsTo(models.SugarcrmAccount, {
+        foreignKey: 'AccountId'
+      });
+      models.SugarcrmConfiguration.hasMany(models.SugarcrmField, {
+        as: 'Subject',
+        foreignKey: 'SubjectId'
+      });
+      models.SugarcrmConfiguration.hasMany(models.SugarcrmField, {
+        as: 'Description',
+        foreignKey: 'DescriptionId'
+      });
+      models.SugarcrmConfiguration.hasMany(models.SugarcrmField, {
+        as: 'Field',
+        foreignKey: 'FieldId'
+      });
+    }
+  });
+};
diff --git a/server/models/sugarcrm_field.js b/server/models/sugarcrm_field.js
new file mode 100644
index 0000000..7998058
--- /dev/null
+++ b/server/models/sugarcrm_field.js
@@ -0,0 +1,22 @@
+'use strict';
+
+module.exports = function(sequelize, DataTypes) {
+  return sequelize.define('SugarcrmField', {
+    type: {
+      type: DataTypes.ENUM('string', 'variable', 'key_value'),
+      defaultValue: 'string'
+    },
+    content: DataTypes.STRING,
+    key: DataTypes.STRING,
+    keyType: {
+      type: DataTypes.ENUM('string', 'variable')
+    },
+    keyContent: DataTypes.STRING,
+    idField: DataTypes.STRING
+  }, {
+    tableName: 'sugarcrm_fields',
+    associate: function(models) {
+      models.SugarcrmField.belongsTo(models.Variable);
+    }
+  });
+};
diff --git a/server/models/variable.js b/server/models/variable.js
index 78d7d3e..0786055 100644
--- a/server/models/variable.js
+++ b/server/models/variable.js
@@ -17,6 +17,8 @@ module.exports = function(sequelize, DataTypes) {
       Variable.hasMany(models.ZendeskField);
       Variable.hasMany(models.DeskField);
       Variable.hasMany(models.SalesforceField);
+      Variable.hasMany(models.FreshdeskField);
+      Variable.hasMany(models.SugarcrmField);
     }
   });
 
diff --git a/server/models/zendesk_account.js b/server/models/zendesk_account.js
index a0e14fb..48a8059 100644
--- a/server/models/zendesk_account.js
+++ b/server/models/zendesk_account.js
@@ -22,7 +22,9 @@ module.exports = function(sequelize, DataTypes) {
   }, {
     tableName: 'zendesk_accounts',
     associate: function(models) {
-      ZendeskAccount.hasMany(models.ZendeskConfiguration);
+      ZendeskAccount.hasMany(models.ZendeskConfiguration, {
+        foreignKey: 'AccountId'
+      });
     }
   });
 
diff --git a/server/models/zendesk_configuration.js b/server/models/zendesk_configuration.js
index fc32791..7fc5caa 100644
--- a/server/models/zendesk_configuration.js
+++ b/server/models/zendesk_configuration.js
@@ -8,7 +8,9 @@ module.exports = function(sequelize, DataTypes) {
   }, {
     tableName: 'zendesk_configurations',
     associate: function(models) {
-      ZendeskConfiguration.belongsTo(models.ZendeskAccount);
+      ZendeskConfiguration.belongsTo(models.ZendeskAccount, {
+        foreignKey: 'AccountId'
+      });
       ZendeskConfiguration.hasMany(models.ZendeskField, {
         as: 'Subject',
         foreignKey: 'SubjectId'
diff --git a/server/routes.js b/server/routes.js
index 53a3f04..bff83fd 100644
--- a/server/routes.js
+++ b/server/routes.js
@@ -13,6 +13,12 @@ module.exports = function(app) {
   var env = app.get('env');
 
   // Insert routes below
+  app.use('/api/sugarcrm/fields', require('./api/sugarcrm_field'));
+  app.use('/api/sugarcrm/configurations', require('./api/sugarcrm_configuration'));
+  app.use('/api/sugarcrm/accounts', require('./api/sugarcrm_account'));
+  app.use('/api/freshdesk/fields', require('./api/freshdesk_field'));
+  app.use('/api/freshdesk/configurations', require('./api/freshdesk_configuration'));
+  app.use('/api/freshdesk/accounts', require('./api/freshdesk_account'));
   app.use('/api/salesforce/fields', require('./api/salesforce_field'));
   app.use('/api/salesforce/configurations', require('./api/salesforce_configuration'));
   app.use('/api/salesforce/accounts', require('./api/salesforce_account'));
@@ -20,7 +26,10 @@ module.exports = function(app) {
   app.use('/api/desk/configurations', require('./api/desk_configuration'));
   // app.use('/api/messages', require('./api/message'));
   app.use('/api/desk/accounts', require('./api/desk_account'));
-  app.use('/api/analytic/reports', require('./api/report'));
+  app.use('/api/analytics/reports/default', require('./api/default_report'));
+  app.use('/api/analytics/reports/custom', require('./api/custom_report'));
+  app.use('/api/analytics/reports/trees', require('./api/report_tree'));
+  app.use('/api/analytics/metrics', require('./api/metric'));
   app.use('/api/updates', require('./api/update'));
   app.use('/api/report/chat/sessions', require('./api/report_chat_session'));
   app.use('/api/zendesk/fields', require('./api/zendesk_field'));
@@ -43,8 +52,9 @@ module.exports = function(app) {
   app.use('/api/integrations', require('./api/integration'));
   app.use('/api/voice/musiconholds', require('./api/voice_musiconhold'));
   app.use('/api/voice/voicemails', require('./api/voice_voicemail'));
+  app.use('/api/contactmanager/customfields', require('./api/custom_field'));
+  app.use('/api/contactmanager/companies', require('./api/company'));
   app.use('/api/contactmanager', require('./api/contact_manager'));
-  app.use('/api/companies', require('./api/company'));
   app.use('/api/fax/business/automations', require('./api/fax_business_automation'));
   app.use('/api/mail/business/automations', require('./api/mail_business_automation'));
   app.use('/api/business/actions', require('./api/business_action'));
-- 
1.7.1